繁体   English   中英

为什么我的JavaScript OR语句未返回正确的值?

[英]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"" (空字符串), undefinednullNaN 当然是false 所有其他值都是真实的(包括字符串"0""false"因为它们不是空字符串)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM