赋值中的 Javascript AND 运算符

标签 javascript variable-assignment logical-operators and-operator

我知道在 JavaScript 中你可以:

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

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

但是,当我们使用逻辑 AND 运算符时,变量 oneOrTheOther 被赋值给了什么?

var oneOrTheOther = someOtherVar && "some string";

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

刚刚学习 JavaScript,我很好奇将赋值与 AND 运算符结合使用会发生什么情况。

最佳答案

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

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

请注意,falsy 值是那些在 bool 上下文中使用时强制为 false 的值,它们是 nullundefined0NaN、空字符串,当然还有 false,以及任何其他强制转换为 true 的内容。

关于赋值中的 Javascript AND 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163407/

相关文章:

javascript - Javascript 的 __defineSetter__ 的奇怪行为

python - 我如何 'declare' 一个空字节变量?

c - 在 C 程序中,BITWISE AND 运算怎么可能比 ARITHMETIC ADDITION 运算占用更多的 CPU 时钟?

c++ - 如何使用逻辑与运算符 (&&) C++ 调用两个函数

javascript - 如何使用 JS API 在悬停时制作 Google map 标记 "come to top"?

javascript - 如何从方括号内的对象解析字符串

javascript - Phonegap 开发构建流程

sql - 如何将 SQL 子查询分配给变量并在同一上下文中使用它

javascript - 使函数适用于任何一种相同类型的元素

javascript - javascript 正则表达式 (|) 管道运算符是否与 (||) 逻辑运算符相同?