一尘不染

赋值内的JavaScript AND运算符

javascript

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

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

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

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

var oneOrTheOther = someOtherVar && "some string";

someOtherVar非假的时候会发生什么?假的
时候会发生什么someOtherVar

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


阅读 421

收藏
2020-04-25

共1个答案

一尘不染

基本上,逻辑与运算符(&&),将返回第二操作数的值,如果第一个是 truthy ,它将返回第一操作数的值,如果它是由本身 falsy ,例如:

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

需要注意的是 falsy
值是那些裹胁到false在布尔上下文中使用时,它们是nullundefined0NaN,一个空字符串,当然false,什么都强求来true

2020-04-25