gpt4 book ai didi

javascript - x === x 在没有 NaN 的情况下返回 false 是否有任何值?

转载 作者:行者123 更新时间:2023-11-28 08:01:56 26 4
gpt4 key购买 nike

在没有 NaN 的情况下,x === x 返回 false 是否有任何值?

例如:

> x = 1
1
> x === x
true
> x = {}
{}
> x === x
true
> x = new Date()
Wed Nov 13 2013 15:44:22 GMT+0200 (EET)
> x === x
true
> x = NaN
NaN
> x === x
false

我发现 x === x 返回 false 的唯一值是当 isNaN(x) === true 时。

对于 x === x 返回 falsex 是否还有另一个值?欢迎提供官方引用!

最佳答案

两个相等的非NaN 之间的严格比较将始终为真( SLaks's answer 正确引用 the spec )。但是,表达式 x 在计算等式期间可能会更改其。使用访问器属性描述符(即属性 getter )时,属性访问可能会发生这种情况:

foo = {};
Object.defineProperty(foo, "bar", {
get: function() {
return Math.random();
}
})

foo.bar === foo.bar; // false

如果您对全局对象 window (或 Node 中的 global)执行此操作,那么您可以看到 x === x全局范围变量的比较失败:

Object.defineProperty(window, "bar", {
get: function() {
return Math.random();
}
})

bar === bar; // false

关于javascript - x === x 在没有 NaN 的情况下返回 false 是否有任何值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273042/

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