正文从这开始~~
网上已经有很多 JS 隐式类型转换相关的博客, 很多面试者专门复习过此问题, 但依然挡不住面试官一个又一个的无聊小题目~
[] == false // true !!...首先我们知道 [] 和 false 一个是对象, 一个是布尔值, 类型不同, 需要类型转换再做比较
要注意, JS 中规定, 如果 == 中有布尔值, 只能转换为数字, 那为什么不是转换成字符串呢?..., 毕竟 Java 中的 NaN 也不能等于自身
隐式转换的恶果
NaN 不能等于自身是隐式转换最大的恶果
你可以尝试如下操作
[1, 2, NaN].indexOf(NaN) // -1 [1, 2...和上面的问题一样, null 和 undefined 都是 Primitive, 而且也不是字符串或者数字, 转无可转
但 JS 专门规定了 null == undefined 就是返回 true, 属于一种专门的特殊情况...这里面不涉及任何 == 比较, 和上面的题目完全是两类题目, 千万不可搞混
此题直接判断这个值是不是 Falsy(假值) 即可, 只要不是这几个值, 都是 true
Falsy 的值有 0, ‘’, false