從這個問題:What does "var FOO = FOO || {}" (assign a variable or an empty object to that variable) mean in Javascript?var FOO = FOO ||如何? Javascript中的成語工作?
我瞭解到,var FOO = FOO || {}
基本上意味着「foo是否存在,然後離開它不變,否則讓它空對象」。
但是如何?
這是我怎麼會解析此語法:
var FOO = (FOO || {})
所以:如果FOO
存在和計算結果爲真布爾值,然後(FOO || {})
就返回true,因此最終FOO
將會完全覆蓋和意志從現在開始保持布爾值爲True。
否則(FOO || {})
將返回任何布爾值{}
evalueates to。由於空的對象,這是{}
,結果始終爲true ...
那麼無論如何(FOO || {})
應該評估爲True,所以......
在任何可能的CASE,評估var FOO = FOO || {}
後,FOO應持無論之前持有的是True的平凡布爾值。基本上,據我的理解,var FOO = FOO || {}
應該相當於var FOO = True
。
我的錯誤在哪裏?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators – evolutionxbox
與其他語言不同,JavaScript布爾表達式不一定返回布爾值。只需運行console.log('foo'||'bar')'在控制檯中。 –