javascript - 如果 1= ='1'//true 并且 1==true//true 那么为什么 1= ='true'//false

标签 javascript equals

为什么是1=='true'假的?

如果1=='1'是真的并且 1==true是真的。

如果 JavaScript 仅比较值而不比较 == 中的类型场景。

最佳答案

这是因为类型强制。

实际上,这就是 JavaScript 在使用 == 运算符时尝试代表您执行的操作。

1 == Number('true'); // 1 == NaN

1 == Number('1'); // 1 == 1

1 == Number(true); // 1 == 1

当使用 == 比较两种不同类型时,JavaScript 会尝试将它们强制为相同类型进行比较。

您可以在此处阅读有关该算法的更多信息:http://webreflection.blogspot.com/2010/10/javascript-coercion-demystified.html

关于javascript - 如果 1= ='1'//true 并且 1==true//true 那么为什么 1= ='true'//false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156837/

相关文章:

javascript - Chart.js - 在单杠内写标签?

java - TestNG - 如何断言两个列表相等而忽略顺序?

c# - Equals 和 GetHashCode 如何在匿名类型上实现?

python - 错误 : out of bounds when searching for identical rows in a numpy array

javascript - angularjs select ngoptions - 以不同的格式显示所选值

javascript - 加载 jquery 后,我无法将图像置于 div 的中心

javascript - "repeating"方法调用的奇怪 Javascript 语法

javascript - jquery ui 多选不适用于多选+单选

java - 检查 JtextField 是否不等于保存的数组

java - 列表相等性和 Collections.shuffle(list) 方法