没有 NaN 的 x === x 返回 false 是否有任何值
Is there any value for what x === x returns false without NaN?
没有 NaN false
x === x
返回的内容有什么价值吗?
例如:
> 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
返回false
的内容,是否有另一个x
值?欢迎官方参考!
两个相等的非NaN
值之间的严格比较将永远是正确的(SLaks的答案正确地引用了规范)。但是,表达式 x
可以在计算相等性期间更改其值。使用访问器属性描述符(即属性获取器)时,属性访问可能会发生这种情况:
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
该规范列出了严格相等的确切规则。
没有其他此类情况,除非您算+0
和-0
.
SameValue 算法(用于验证对只读定义的属性的更改)没有此类异常。
相关文章:
- 检查文本区域是否为空总是返回false
- 当启用false或删除chrome扩展时,是否可以询问密码
- 检查对象数组是否包含布尔值true/false
- 没有 NaN 的 x === x 返回 false 是否有任何值
- 函数:根据字符串中是否存在子字符串返回 True/False
- 检查谓词是否应返回 true 或 false,未按预期工作
- 旧版本的 javascript 是否评估 (“-1” < 0) 为 false
- 检查是否所有返回的数组都包含值 false
- 使用javascript Truthy和Falsy Value VS'检查If语句是否为true或false==
- 是否'cache:false'PREVENT缓存,或UNIQUE-IFY请求绕过缓存
- 检查变量是否为false,而不是true或未定义
- 是否可以将true/false值传递给ajax函数
- 如果 if 条件为 false,if 块中的函数是否应该为 typeof=='function'
- 在JS中是否可以定义regexp,当在输入结束时对给定文本进行测试时,该regexp会给出false
- 在JavaScript中返回1或0而不是true或false是否有缺点?
- number * string是NaN,但是当检查NaN是否返回false时
- 是否“总是返回无序的结果”意味着“返回false”
- Javascript:检查变量是否为false,或者它是否根本不存在
- 检查JavaScript中除零外是否为false
- JavaScript检查value是否只有undefined、null或false