[英]Why does my JavaScript OR statement not return the correct value?
我坚持以下几点:
foo = properties[field] || overrides.default || config.widget.default || undefined;
同
console.log(properties[field]) // undefined
console.log(overrides.default) // 0
console.log(config.widget.default) // undefined
因此,据我了解, foo
应该为0
。 但是... undefined
这仍然有效:
foo = properties[field] || overrides.default;
但是,一旦我添加了另一个OR选项,它便不再起作用。
问题 :
为什么我的value=0
第二个操作数不覆盖undefined
操作数?
谢谢!
||
如果为真,则运算符将返回其左侧操作数,否则返回右侧操作数。
在您的示例中,所有操作数都具有假值,因此复合||
语句返回最右边的值。
在JS中,以下所有内容均为false: 0
, ""
(空字符串), undefined
, null
, NaN
。 当然是false
。 所有其他值都是真实的(包括字符串"0"
或"false"
因为它们不是空字符串)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.