我知道您可以在JavaScript中执行以下操作:

var oneOrTheOther = someOtherVar || "these are not the droids you are looking for...";


如果变量oneOrTheOther不是nullundefinedfalse,则它将采用第一个表达式的值。在这种情况下,它将被分配给第二条语句的值。

但是,当使用逻辑AND运算符时,变量oneOrTheOther被分配给什么?

var oneOrTheOther = someOtherVar && "some string";


someOtherVar为非假时会发生什么?
someOtherVar为假时会发生什么?

只是学习JavaScript,我很好奇结合AND运算符的赋值会发生什么。

最佳答案

基本上,如果第一个操作数为真,则逻辑AND运算符(&&)将返回第二个操作数的值,如果第一个操作数本身为假,则将返回第一个操作数的值,例如:

true && "foo"; // "foo"
NaN && "anything"; // NaN
0 && "anything";   // 0


请注意,伪造的值是在布尔上下文中使用时会强制转换为false的那些值,它们是nullundefined0NaN,空字符串,当然还有false,其他任何胁迫到true

10-06 07:00