<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[黄沙百战穿金甲，不破楼兰终不还。                               ]]></title><description><![CDATA[------->生无所息   行胜于言<-------    ]]></description><link>https://blog.youkuaiyun.com/cometwo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cometwo]]></copyright><item><title><![CDATA[大话代码回滚：git reset 和 git revert]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/121659805</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/121659805</guid><author>cometwo</author><pubDate>Wed, 01 Dec 2021 17:09:55 +0800</pubDate><description><![CDATA[在版本迭代开发过程中，相信很多人都会有过错误提交的时候（至少良许有过几次这样的体验）。这种情况下，菜鸟程序员可能就会虎驱一震，紧张得不知所措。而资深程序员就会微微一笑，摸一摸锃亮的脑门，然后默默的进行版本回退。
对于版本的回退，我们经常会用到两个命令：


git reset
git revert


那这两个命令有何区别呢？先不急，我们后文详细介绍。

git reset
假如我们的系统现在有如下几个提交：

其中：A 和 B 是正常提交，而 C 和 D 是错误提交。现在，我们想把 C 和 D 回退掉。而]]></description><category></category></item><item><title><![CDATA[js判断本地是否安装app]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/78335122</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/78335122</guid><author>cometwo</author><pubDate>Tue, 24 Oct 2017 21:38:57 +0800</pubDate><description><![CDATA[var ua = navigator.userAgent.toLowerCase();

1.判断是否是微信
 
function isWeixinBrowser() {
        return (/micromessenger/.test(ua)) ? true : false;
    }
 
 
2.判断是否是android
 
var isAndroid = ua.indexOf(']]></description><category></category></item><item><title><![CDATA[使用CSS实现三栏自适应布局（两边宽度固定，中间自适应）]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/78324425</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/78324425</guid><author>cometwo</author><pubDate>Mon, 23 Oct 2017 22:49:56 +0800</pubDate><description><![CDATA[所谓三列自适应布局指的是两边定宽，中间block宽度自适应。这道题在今年网易内推前端工程师面试的时候也被问到。 我这里主要分为两大类，一类是基于position传统的实现，一类是基于css3新特性弹性盒模型布局实现。
 1. 基于传统的position和margin等属性进行布局
   这里也分为三种方法，分别为绝对定位法，圣杯布局，自身浮动法。
  1).绝对定位法
    绝对定位法原]]></description><category></category></item><item><title><![CDATA[jQuery 自定义事件以及命名空间]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/78303291</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/78303291</guid><author>cometwo</author><pubDate>Sat, 21 Oct 2017 14:15:22 +0800</pubDate><description><![CDATA[html lang="en">

    head>
        meta charset="UTF-8" />
        script type="text/javascript" src="">script>
        title>Documenttitle>
        style type="text/css">
            .main {
        ]]></description><category></category></item><item><title><![CDATA[拖拽]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/72229508</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/72229508</guid><author>cometwo</author><pubDate>Mon, 15 May 2017 21:49:14 +0800</pubDate><description><![CDATA[<!DOCTYPE html>
<html>    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            body {
                margin: 0;
                padding: 0;]]></description><category></category></item><item><title><![CDATA[更合理的 setState()]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/70218266</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/70218266</guid><author>cometwo</author><pubDate>Tue, 18 Apr 2017 00:18:01 +0800</pubDate><description><![CDATA[原文发表在我的博客：http://www.erichain.me/2017/04/17/2017-04-17-more-reasonable-setstate/ 
React 是我做前端以来接触到的第三个框架（前两个分别是 Angular 和 Vue），无论是从开发体验上和效率上，这都是一门非常优秀的框架，非常值得学习。原谅我说了一些废话，以下是正文。 
借助于 Redux，我们可以轻松的对 Rea]]></description><category></category></item><item><title><![CDATA[css画图（*****************）]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/67654563</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/67654563</guid><author>cometwo</author><pubDate>Tue, 28 Mar 2017 21:47:09 +0800</pubDate><description><![CDATA[1. 自适应的椭圆

背景知识：border-radius属性的基本用法

使用border-radius制作一个圆很简单，只要给任何正方形元素设置固定宽高及一半长度以上的border-radius，就可以得到圆形




1234


background: #fb3;width: 200px;height: 200px;border-radius: 100px;  /*]]></description><category></category></item><item><title><![CDATA[ES6 新特性范例大全]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/65627206</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/65627206</guid><author>cometwo</author><pubDate>Fri, 24 Mar 2017 10:03:37 +0800</pubDate><description><![CDATA[小编推荐：掘金是一个高质量的技术社区，从 ECMAScript 6 到 Vue.js，性能优化到开源类库，让你不错过前端开发的每一个技术干货。各大应用市场搜索「掘金」即可下载APP，技术干货尽在掌握..ECMAScript6（ECMAScript 2015 ，ES5，ES2016）技术已经在前端圈子很流行了，他给前端开发人员带来了很多惊喜，提供的语法糖使复杂的操作变得简单。本文没有详细描述这些新特性]]></description><category></category></item><item><title><![CDATA[常见组件对象的搞法]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52953585</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52953585</guid><author>cometwo</author><pubDate>Fri, 28 Oct 2016 09:45:42 +0800</pubDate><description><![CDATA[<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            function libin(a,b){
                this.a=a;]]></description><category></category></item><item><title><![CDATA[js 面试的坑（四）]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52819960</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52819960</guid><author>cometwo</author><pubDate>Fri, 14 Oct 2016 23:34:57 +0800</pubDate><description><![CDATA[函数提升比变量提升优先级高 
  
 
 
 
 
input 4位加一个空格
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
        <title>  
            数字每4位加空格]]></description><category></category></item><item><title><![CDATA[Flex布局新旧混合写法详解（兼容微信）]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52776709</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52776709</guid><author>cometwo</author><pubDate>Mon, 10 Oct 2016 12:40:27 +0800</pubDate><description><![CDATA[flex是个非常好用的属性，如果说有什么可以完全代替 float 和 position ，那么肯定是非它莫属了（虽然现在还有很多不支持flex 的浏览器）。然而在移动开发中，本来绝大多数浏览器（包括安卓2.3以上的自带浏览器）都支持的属性，偏偏有个例外，就是国产某某X5内核神器（不知哪个版本的webkit，仅支持 display:box），自主研发这东西也不好多说什么了，下面入正题。

首先还]]></description><category></category></item><item><title><![CDATA[JS类型判断typeof PK {}.toString.call(obj);]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52649476</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52649476</guid><author>cometwo</author><pubDate>Sat, 24 Sep 2016 11:37:45 +0800</pubDate><description><![CDATA[先看typeof 

html lang="en">

    head>
        meta charset="UTF-8" />
        script type="text/javascript" src="" >script>
        title>Documenttitle>
        style type="text/css">

        style>]]></description><category></category></item><item><title><![CDATA[直面坑爹的前端面试]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52644246</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52644246</guid><author>cometwo</author><pubDate>Fri, 23 Sep 2016 22:26:50 +0800</pubDate><description><![CDATA[<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            function A(){
                this.say=function(){]]></description><category></category></item><item><title><![CDATA[禁止遮罩层以下屏幕滑动]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52614821</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52614821</guid><author>cometwo</author><pubDate>Wed, 21 Sep 2016 23:40:14 +0800</pubDate><description><![CDATA[相信大家在做移动端开发的时候会经常遇到这种场景，需要适时的弹出遮罩（有时为了突出还会在外面加上蒙层），弹窗出现以后，为了追求良好的用户体验，遮罩以下的屏幕是禁止滑动的。在网上找了很多资料，大体就这两种做法，但都有不完善的地方。加上自己的思考和总结，想到一个办法，应该可以解决你的问题。

a）大众型

一般，大家想到的都是给body或者html添加overflow：hidden样式，当然he]]></description><category></category></item><item><title><![CDATA[强悍的javascript手势库]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52551527</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52551527</guid><author>cometwo</author><pubDate>Thu, 15 Sep 2016 23:03:51 +0800</pubDate><description><![CDATA[/**
 * Toucher
 * git：https://github.com/cometwo/Toucher-1
 */

"use strict";

(function (root, factory) {
    if (typeof define === "function" && define.amd) {
        define([], function () {
      ]]></description><category></category></item><item><title><![CDATA[js 面试的坑（三）]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52515617</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52515617</guid><author>cometwo</author><pubDate>Mon, 12 Sep 2016 17:49:01 +0800</pubDate><description><![CDATA[判断页面滚动方向（上下）
 
html>

    head>
        meta charset="UTF-8">
        title>title>
        style>
            body{
                height:1000px;
            }
        style>
        script src="htt]]></description><category></category></item><item><title><![CDATA[jQuery手风琴效果]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52510793</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52510793</guid><author>cometwo</author><pubDate>Mon, 12 Sep 2016 09:34:33 +0800</pubDate><description><![CDATA[原地址：http://www.jq22.com/jquery-info9370<!doctype html>
<html lang="en">    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="wi]]></description><category></category></item><item><title><![CDATA[单选框，复选框，下拉列表的美化]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52507221</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52507221</guid><author>cometwo</author><pubDate>Sun, 11 Sep 2016 22:54:40 +0800</pubDate><description><![CDATA[<!DOCTYPE html>
<html>    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <t]]></description><category></category></item><item><title><![CDATA[老生常谈javascript的5中继承]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52504110</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52504110</guid><author>cometwo</author><pubDate>Sun, 11 Sep 2016 15:25:31 +0800</pubDate><description><![CDATA[function MAN(name, sex, age) {
				this.name = name;
				this.sex = sex;
				this.age = age;
				this.say = function(school, zhuanye) {
					console.log(this.name + "," + this.sex + ",今年" + this.age +]]></description><category></category></item><item><title><![CDATA[JavaScript中call,apply,bind方法的总结]]></title><link>https://blog.youkuaiyun.com/cometwo/article/details/52503837</link><guid>https://blog.youkuaiyun.com/cometwo/article/details/52503837</guid><author>cometwo</author><pubDate>Sun, 11 Sep 2016 14:35:14 +0800</pubDate><description><![CDATA[function MAN(name, sex, age) {
				this.name = name;
				this.sex = sex;
				this.age = age;
				this.say = function(school,zhuanye) {
					console.log(this.name + " , " + this.sex + " ,今年" + this.age]]></description><category></category></item></channel></rss>