在相等比较中使用 Object.is()让结果更准确
当在JavaScript中比较两个值时,可能习惯于使用==或===,我更喜欢后者,因为==存在强制类型转换。但是===也不完全准确。

比较NaN需要使用isNaN()方法才可以正确检测 NaN。
ES6中引入了Object.is()方法来弥补全等运算符的不准确运算。这个方法接收两个参数,如果这两个参数类型相同且具有相同的值,则返回true。

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

参考
- 深入理解ES6 – 作者: 【美】Nicholas C. Zakas
- 为什么你应该在相等比较中使用 Object.is()