gpt4 book ai didi

javascript - 傻JS对比

转载 作者:行者123 更新时间:2023-11-30 05:30:35 28 4
gpt4 key购买 nike

我今天在控制台上评估一些东西,当我打字时我正在胡闹,并对以下内容感到好奇:

1 === 1 === 1 计算结果为 false

但是

1 == 1 == 1 计算为 true

第一个比较是否试图从整体上评估 1 === 1 的类型?

这种行为的原因是什么?

最佳答案

简单的答案是 == 会尝试类型转换,而 === 不会。

两个例子的求值顺序是一样的,如下所示:

(1 === 1) === 1
(1 == 1) == 1

所以第一个 ===== 比较完成,其结果用作第二个 == 或的操作数===。像这样:

(1 === 1) === 1
// v v
(true) === 1


(1 == 1) == 1
// v v
(true) == 1

所以你可以看到我们现在真正在谈论的是:

true === 1

对比

true == 1

所以不同的结果源于这样一个事实,正如我上面提到的,=== 不会尝试转换任何类型,而 == 会尝试转换将它们转换为匹配类型。

所以如果不进行转换,true === 1 显然会是 false 因为它们不是相同的值,但是对于 true == 1true 被转换为数字,值 true 的数字转换总是以数字 1 结束,所以现在这个:

true == 1

转换为:

1 == 1

这显然是正确的。

所以完整的演练是这样的:

(1 == 1) == 1
// v v
(true) == 1
// v v
1 == 1

关于javascript - 傻JS对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27319609/

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