gpt4 book ai didi

javascript - 为什么 `int(0) and boolean` 返回 `int(0)` 而不是 `boolean(false)` ?

转载 作者:行者123 更新时间:2023-12-03 07:19:36 25 4
gpt4 key购买 nike

具体来说(我不知道在其他情况下是否会发生),当我使用 myString.length && myString === "true"执行 int(0) && booleanmyString = "" 时,它返回 0 而不是返回 bool 值。

alert((function() {
var myString = "";
return myString.length && myString === "true";
})());

我知道我可以通过 myString.length !== 0 或使用 Boolean 进行转换来修复它。但我想了解为什么 && 不强制将左侧转换为 bool 值。

实例:http://jsfiddle.net/uqma4ahm/1/

最佳答案

JavaScript 中的 && 运算符返回最后计算的其子表达式操作数之一的实际值。在您的情况下,当 .length0 时,该表达式是最后一个要评估的表达式,因为 0 是“假的”。

运算符确实对子表达式值的 bool 值执行强制转换,但它仅使用该结果来确定如何进行。 && 的整体值因此不一定是 bool 值;仅当评估的最后一个子表达式具有 bool 结果时,它才是 bool 值。

此 JavaScript 行为明显不同于 C、C++、Java 等中类似运算符的行为。

关于javascript - 为什么 `int(0) and boolean` 返回 `int(0)` 而不是 `boolean(false)` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28906024/

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