js中!==与!=的区别是什么啊?可以这样吗?如:
var a;
if (a!==null) {...

解决方案 »

  1.   

    ===是类型也强制相等,==不用比类型。
    !==就是类型或值不相等,!=只是值不相等。变量没初始化是 undefined
      

  2.   

    ===要求字面值相等且值类型相等。==只要求字面值相等。
    '1'==1为true
    '1'===1为falseundefined是从null派生来的
    typeof undefined=='undefined'
    typeof null=='object'undefined==null为true
    undefined===null为falsevar a;
    alert(typeof a);//'undefined'
    alert(a===undefined);//true
      

  3.   

    !==比!=多比较一层类型,如var a = ""; alert(a != 0);// false;
    alert(a !== 0); //true;
    如果不比较类型的话,false 、null、0是相同的,即用==号比较,如果用===比较的话,他们都不同。
      

  4.   

    没错,我一般都是用值类型都相等来判断。extjs里的源码也大部分这样写的。