特殊类型比较
var str1 = '1';
var str2 = new String('1');
console.log(str1 == str2); // true
console.log(str1 === str2); // false
console.log(null == null); // true
console.log(null === null); // true
console.log(undefined == undefined); // true
console.log(undefined === undefined); // true
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
console.log(/a/ == /a/); // false
console.log(/a/ === /a/); // false
console.log({} == {}); // false
console.log({} === {}); // false
==与===区别如下:
- ==是不判断类型,直接转类型后判断值
- ===是先判断类型,在判断值
js中有个比较特殊的数---NAN,这个数与任意数相比较都为false,离谱,甚至与自身做比较时也是false
如下:
NaN == [] //false
NaN == {} //false
NaN == 0 //false
NaN == false //false
NaN == "0" //false
NaN == null //false
NaN == undefined //false
js中也两个特殊的数,null和undefined。这两个值互相等且自身等,其余情况与谁相比都不相等。
null == null //true
null == undefined //true
undefined == null //true
undefined == undefined //true