10 09/2014

javascript 为什么要用 === 和 !==

最后更新: Wed Sep 10 2014 12:37:50 GMT+0800

javascript 是 类型语言,用 == 时,会自动转换类型。在 chrome 控制台(command+alt+j),运行下面代码

99=='99'   //true
0==''   //true
0=='      '   //true
0==' \t\n\r '   //true
false==0   //true
false=='false'   //false
使用 === 对比,两边类型也必须一致
99==='99'   //false
0===''   //false
0==='      '   //false
0===' \t\n\r '   //false
false===0   //false

再看看 != 和 !==

99!='99'   //false
0!=''   //false
0!='      '   //false
0!=' \t\n\r '   //false
false!=0   //false
false!='false'   //true
99!=='99'   //true
0!==''   //true
0!=='      '   //true
0!==' \t\n\r '   //true
false!==0   //true
false!=='false'   //true

结论是:专业人士都推荐使用 === 和 !==。

小测试

猜猜下面的结果

false == 'false'    // false
false == '0'        // true
false == undefined  // false
false == null       // false
null == undefined   // true
!false==!undefined  // true
null===undefined    // false