我知道您可以在JavaScript中执行以下操作:
var oneOrTheOther = someOtherVar || "these are not the droids you are looking for...";
如果变量
oneOrTheOther
不是null
,undefined
或false
,则它将采用第一个表达式的值。在这种情况下,它将被分配给第二条语句的值。但是,当使用逻辑AND运算符时,变量
oneOrTheOther
被分配给什么?var oneOrTheOther = someOtherVar && "some string";
someOtherVar
为非假时会发生什么?someOtherVar
为假时会发生什么?只是学习JavaScript,我很好奇结合AND运算符的赋值会发生什么。
最佳答案
基本上,如果第一个操作数为真,则逻辑AND运算符(&&
)将返回第二个操作数的值,如果第一个操作数本身为假,则将返回第一个操作数的值,例如:
true && "foo"; // "foo"
NaN && "anything"; // NaN
0 && "anything"; // 0
请注意,伪造的值是在布尔上下文中使用时会强制转换为
false
的那些值,它们是null
,undefined
,0
,NaN
,空字符串,当然还有false
,其他任何胁迫到true
。