在相等比较中使用 Object.is()让结果更准确

当在JavaScript中比较两个值时,可能习惯于使用=====,我更喜欢后者,因为==存在强制类型转换。但是===也不完全准确。

比较NaN需要使用isNaN()方法才可以正确检测 NaN。

ES6中引入了Object.is()方法来弥补全等运算符的不准确运算。这个方法接收两个参数,如果这两个参数类型相同且具有相同的值,则返回true

对于Object.is()方法来说,其运行结果大部分情况中与===运算符相同,唯一区别在于+0-0被识别为不相等并且NaNNaN等价。

放一张对比图:

参考