Cle*_*lem 7 javascript methods object ecmascript-6
我已经阅读了"Object.is"方法的MDN页面.它为不提供此方法的浏览器提供了替代代码:
if (!Object.is) {
Object.is = function(v1, v2) {
if (v1 === 0 && v2 === 0) {
return 1 / v1 === 1 / v2;
}
if (v1 !== v1) {
return v2 !== v2;
}
return v1 === v2;
};
}
Run Code Online (Sandbox Code Playgroud)
问题很简单:第二个"如果"何时可以成立?
感谢您的关注.
它有点写在同一篇文章中:
这也与 === 运算符的相等不同。=== 运算符(以及 == 运算符)将数值 -0 和 +0 视为相等,并将Number.NaN 视为不等于 NaN。
逻辑是这是运算符返回同一变量的NaN !== NaN唯一情况,因此它必须是关于比较的。然后,它进行相同的检查,并根据结果返回 true 或 false:如果比较是,则与 NaN 相比,则返回 NaN ,如果不是,则返回,因为 NaN 永远不会与非 NaN 相同。!==trueNaNv2v2truetruefalse
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |