javasript中“==”与“===”的区别

符号 “==” “===”
1 它的比较并不严格,当操作数的类型一致时,它会按照严格相等的规则进行比较,但当操作数的类型不一致时,它会尝试进行类型转换。 首先会计算操作符的值,然后比较这两个值(即使类型不一致也不会进行转换)
2 一个是null,一个是undefined时,则相等; 如果两操作数的类型不同,则不相等
3 一个值是字符串,一个值是数字时,会首先将字符串转换为数字,然后用转换之后的值进行比较; 操作数中只要出现NaN,则不相等;
4 如果其中的一个操作数为true或false,则会将其先转换为1或0再比较; .二者都为null或undefined,则相等;一方为null,一方为undefined,则不相等;
5 如果一个值为对象,另一个值为数字或是字符串,则会先将对象转换为原始值,再进行比较; .操作数都为true或false时,则相等;
6 其它不同类型之间的比较均为不相等。 操作数都为数字,且数值相等时,则相等;并且-0===0为true;
7 are neat 操作数都为字符串,且各个位上的字符都相等时,字符串相等;
8 are neat 两个引用指向同一个对象、函数或数组时,则相等。

你可能感兴趣的:(javasript中“==”与“===”的区别)