gpt4 book ai didi

javascript - MDN "Object.is"替代提案

转载 作者:数据小太阳 更新时间:2023-10-29 04:46:14 26 4
gpt4 key购买 nike

我已阅读 the MDN page on the "Object.is" method .它为不提供此方法的浏览器提供了替代代码:

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;
};
}

问题很简单:第二个“如果”什么时候可以为真?

感谢您的关注。

最佳答案

它有点写在 the same article 中:

This is also not the same as being equal according to the === operator. The === operator (and the == operator as well) treats the number values -0 and +0 as equal, and it treats Number.NaN as not equal to NaN.

逻辑是 NaN !== NaN!== 运算符在同一变量上返回 true 的唯一情况,所以它一定是关于 NaN 的比较。然后它对 v2 进行相同的检查并根据结果返回 true 或 false:如果 v2 比较是 true,它是关于NaN 与 NaN 相比,因此返回 true,如果不是则返回 false,因为 NaN 永远不会与非 NaN 相同

关于javascript - MDN "Object.is"替代提案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21482500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com