gpt4 book ai didi

javascript - 使用 `!=` 和 `==` 比较对象和 bool 值有不同的结果

转载 作者:行者123 更新时间:2023-11-29 10:57:56 25 4
gpt4 key购买 nike

我无法理解 JavaScript 中相等运算符的行为。这是我在浏览器控制台上运行以下命令时得到的结果:

new Object() == true  // returns false
new Object() != false // returns true

现在,我不同意 Object 应该为 false 这一事实(尽管在检查了 ECMAScript Language Specification 之后我理解了为什么),但真正困扰我的是我得到了两个两个等价逻辑表达式的不同结果。

发生了什么事?

最佳答案

根据规范,这两个都应该返回false(这符合我的常识):

new Object() == true  // false
new Object() == false // false

基于:

  1. If Type(x) is Object and Type(y) is either String or Number, return the result of the comparison ToPrimitive(x) == y.

  2. Return false.

因为它们都返回 false 并且:

A != B is equivalent to !(A == B).

这两个都应该是true:

new Object() != true  // true
new Object() != false // true

注意:这不应与 new Object()真实性相混淆。换句话说 new Object() == true 是不一样的 Boolean(new Object()) == true

关于javascript - 使用 `!=` 和 `==` 比较对象和 bool 值有不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53441977/

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