1、对于 string、number 等基础类型,== 和 === 是有区别的
- 不同类型间比较,== 之比较 “转化成同一类型后的值” 看 “值” 是否相等,=== 如果类型不同,其结果就是不等。
- 同类型比较,直接进行 “值” 比较,两者结果一样。
2、对于 Array,Object 等高级类型,== 和 === 是没有区别的
3、基础类型与高级类型,== 和 === 是有区别的
- 对于 ==,将高级转化为基础类型,进行 “值” 比较
- 因为类型不同,=== 结果为 false
4、!= 为 == 的非运算,!== 为 === 的非运算
==的列子
10 == "10" // true
1 == true // true
null == null // true
undefined == undefined // true
null == undefined // true
true == "20" // false
"1" == "01" // false,此处等号两边值得类型相同,不要再转换类型了!!
NaN == NaN // false,NaN和所有值包括自己都不相等。
2
3
4
5
6
7
8
===的列子
10 === "10" // false
1 === true // false
NaN === NaN // false
null === undefined // false
'abc' === "abc" // true
false === false // true
null === null // true
undefined === undefined // true
2
3
4
5
6
7
8