<分区>
同样的操作得到不同的结果,谁能告诉我为什么。
"use strict"
console.log(+0 === -0) // true
+0 === -0 // false
执行结果:
<分区>
同样的操作得到不同的结果,谁能告诉我为什么。
"use strict"
console.log(+0 === -0) // true
+0 === -0 // false
执行结果:
最佳答案
这里没什么大不了的,因为没有分号,您的代码被解释如下。
"use strict" +0 === -0
使用分号,
"use strict";
+0 === -0
严格模式与比较无关。看看 abstract equality算法。 +0
将始终等于 -0
。
当涉及到你的情况时,你的代码将被这样解释,
"use strict" console.log(+0 === -0) +0 === -0
那么这里发生了什么,
console.log()
将首先被评估,true
将被打印在控制台中。undefined +0 === -0
将被评估undefined + 0
是 NaN
,所以 NaN === -0
将是 false
关于javascript - 当我在严格模式下使用 `===` 运算符时,javascript 中出现比较歧义,有人可以告诉我这是为什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57394002/
相关文章:
javascript - 如何在 PrimeNG 表中使用多选过滤器?
javascript - Cypress 测试无法识别 node_modules 包类型
javascript - 使用 fp-ts 删除 Either 数组中的重复项
postgresql - 函数在没有 STRICT 修饰符的情况下执行得更快?
javascript - 严格违反使用此关键字和揭示模块模式
javascript - 为什么 BootstrapValidator 不工作?
performance - 为什么 "MOVQ 0x30(SP), DX"慢?