簡體   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