1. null instanceof Object 结果为false
- null本质上是null类型而不是Object,typeof null = ‘object’是历史遗留问题;
2. NaN == NaN的结果为false
- NaN表示非数字,是Not a Number的缩写,但是他们也是不同的,NaN 不等于NaN 且NaN永远不可能相等。
3. == 判断过程:
- 判断是否有NaN,如果有,则直接返回false;
- 判断是否有Boolean,如果有,false转换为0,true转换为1;
- null、undefined不进行转换;
4. Number类型转换对应的值
Number(’ ') = 0
Number(false) = 0
Number(undefined) = NaN
5. null == undefined的结果为true
- ECMAScript认为:他们都表示一个无效的值,表示内容相似。
6. {} === {} 、[1,2,3] === [1,2,3] 的结果为false
引用类型比较的地址,他们的地址不同。
P.S.以上解释均来自于网络,如有解释不对的地方,欢迎评论区交流!