gpt4 book ai didi

javascript - 为什么 ""== "0"在 JavaScript 中是 false ?

转载 作者:行者123 更新时间:2023-11-28 11:08:19 27 4
gpt4 key购买 nike

我试图理解这里的一些东西,解释自己的最好方法是举一个例子:

"" == false
// true

"0" == false
// true

false == false
// true

但是这里发生了什么?

"" == "0"
// false

如果 "" 计算结果为 false 并且 "0" 计算结果为 false,则逻辑预测它是就像我写的一样 false == false

我确实意识到我正在尝试在这里比较两个字符串,但是语言如何知道 "a"== "b"""== "0 “?在这种情况下,强制是如何发生的?

最佳答案

Why “” == “0” is false in javascript?

因为操作数是两个内容不同的字符串。仅当操作数的数据类型不同时才会发生类型强制。

相关问题:

<小时/>

If "" evaluates to false and "0" evaluates to false the logic predicts that it is the same as i write false == false

让我们看看实际比较是如何解决的:

""== false 被强制为 0 == 0

"0"== false 被强制为 0 == 0

false == false:相同的数据类型,因此直接比较值

如您所见,"0" 不会“评估”为 false,它会转换为整数,并且值被比较。 ("" 的计算结果为 false(空字符串),但转换为数字时,结果为 0)。

将值转换为 bool 值和将值与 bool 值进行比较之间存在很大差异。最明显的例子:!!"0" (true) 和 "0"== false (true) .

当您使用松散比较 (==) 来比较不同数据类型的值时,它们始终会被强制转换为数字(如果您将对象与字符串进行比较,则可能会转换为字符串)。

看看 specification有关比较算法的更多信息。

关于javascript - 为什么 ""== "0"在 JavaScript 中是 false ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21889320/

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