[英]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.