套路题の==与===

==与===

Posted by iMaple on June 6, 2016

同样的,== 与 === 作为最常见的面(tao)试(lu)题之一,也是经常会出现在我们前端面试或者笔试题中,如果掌握不扎实(像我),往往会吃不少亏,因此这里要把跳过的坑还原并记录一下,好让下次不再跳进去。(怎么还是这台词。。。)

废话少说,看剑!

alert(0 == false)
alert(0 === false)
alert([0] == false)
alert([0] === false)
alert([] == false)
alert([] === false)
alert('false' == false)
alert('false' === false)
alert(NaN == NaN)
alert(NaN === NaN)
// 请依次输出上面弹出的值

直接给出答案:

true
false
true
false
true
false
false
false
false
false

结论:

== 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。

=== 和 !== 只有在相同类型下,才会比较其值

NaN 是个奇葩,它跟任何值(包括本身)都不会相等