我在javascript應用程序的代碼行下面找到了。什麼是「對象|| {}」在JavaScript中的含義?
var auth = parent.auth = parent.auth || {};
我知道有哪些擴展與權威性對象現有對象的父,但我不明白什麼是parent.auth || {}
在這裏做。
我在javascript應用程序的代碼行下面找到了。什麼是「對象|| {}」在JavaScript中的含義?
var auth = parent.auth = parent.auth || {};
我知道有哪些擴展與權威性對象現有對象的父,但我不明白什麼是parent.auth || {}
在這裏做。
||是或,如果parent.auth未定義,代碼將返回一個空對象。
就像檢查null,然後創建一個新的對象,如果null(來自java/c#)。
這意味着如果parent.auth
值爲falsy(假的,0,NULL,undefied等),然後分配值{}
(空物體)到可變auth
但爲什麼parent.auth被分配兩次 –
@Sandeepvashisth這是因爲'parent.auth'的值本身被更新爲空對象,如果它是一個虛假值...所以一旦語句執行' parent.auth'將有一個非falsy值 –
@Sandeepvashisth也許讀[運算符優先級](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)有助於理解這個更好? – Teemu
'變種newVar =假|| null || true'會將'true'分配給'newVar'。邏輯或運算符用於防止分配_falsy_值。如果'parent.auth'是虛假的,或者不存在,則分配新的對象文字 –
相關:[構造x = x || y是什麼意思?](http://stackoverflow.com/questions/2802055/what-does-the-construct-xxy-mean/) –