不畏惧失败是创造力的一个基本要素。——<艾尔文·兰德博士>
我们都知道JavaScript是松散类型的,在某些情况下,与'=='进行质量比较时,它特别落后。与'=='进行比较会由于强制性或强制转换“转换2的其中之一”而产生了意外的结果。然后将操作数与对方的类型进行比较”。
1 | 0 == ' ' //true |
因此,他们为我们提供了更严格的三元等于运算符’===’,并且不强制操作数,但是与'==='进行比较并不是您可以获得的最佳解决方案:
1 |
|
好消息是,在ES6中有一个新的 “Object.is()”,它更好,更精确,它具有与 “===” 相同的功能,而且在某些特殊情况下,其表现还不错:
1 | Object.is(0 , ' '); //false |
Mozilla团队认为 Object.is 不会比 '===' 更严格,他们说我们应该考虑该方法如何处理 NaN,-0和+0,但总的来说,我认为这是一个好习惯在实际应用中。
参考
- ghttps://www.jstips.co/en/javascript/why-you-should-use-Object.is()-in-equality-comparison/
- MDN - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness
关注【公众号】,了解更多。

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!
支付宝打赏
微信打赏