对比两个值是否相等咱们能够使用==,或者判断绝对相等使用===。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身以及正0等于负0
+0 == -0 //true
+0 === -0 //true
不过这两个东西是不同的
再好比:
NaN == NaN //false
不过他们是一个东西
遇到这种状况,能够使用Object.is()方法,两个参数就是要对比的东西,好比:
Object.is(NaN,NaN) //true
Object.is(+0,-0) //false
大部分状况下,仍是能够使用==或者===去判断两个值是不是相等的