0

在阅读 JavaScript 文档时,我遇到了一个让我感到困惑的部分

“逻辑运算符通常与布尔(逻辑)值一起使用;当它们使用时,它们返回一个布尔值。但是,&& 和 || 运算符实际上返回指定操作数之一的值,所以如果这些运算符与非- 布尔值,它们可能返回非布尔值。逻辑运算符如下表所述。

&& Operator: expr1 && expr2

(逻辑与)如果 expr1 可以转换为 false,则返回;否则,返回 expr2。因此,当与布尔值一起使用时,如果两个操作数都为真,则 && 返回真;否则,返回 false。

|| Operator: expr1 || expr2

(逻辑或)如果可以转换为真,则返回 expr1;否则,返回 expr2。因此,当与布尔值一起使用时,|| 如果任一操作数为真,则返回真;如果两者都是假的,则返回假。”

假设您有:

var a3 = false && true; 

因此考虑到“and”运算符的规则,变量 a3 应该包含值 true,因为“false”不能转换为 false。

4

1 回答 1

5

单词“可以转换为假”的选择源于 JavaScript 具有值和值。

所有值都可以转换为值或值。

false是假的,所以不会发生类型转换,但其他值会转换为假,例如:

undefined, null, NaN, 0, ""

所以 and 语句将返回falseand not true,因为falseis alreadyfalse并且不需要转换。

于 2013-06-06T00:20:18.147 回答