2014-04-03 20 views
-1

我讀了一個網站的網頁源代碼時,我發現這兩條線:爲什麼在JavaScript中使用這些條件運算符?

var googletag = googletag || {}; 
googletag.cmd = googletag.cmd || []; 

什麼條件||運營商的分配變量的值時,有什麼意義?我不明白爲什麼||將與空對象或空數組一起使用,以及它的用途是什麼。

+1

如果你在手冊中查找'||',它會變得很明顯。或者只是在控制檯中玩一下。 – Jon

回答

1

認爲它是這樣的:

var my_var = false || 34; 
alert(my_var); //what do you see? 

如果前面的條件爲真,將分配到my_var。否則,這將是第二個條件。

通過這種方式,可以保證他們有一個可以與腳本的其餘部分一起工作的對象。例如,Python會在調用dict.get()調用以確保它不會炸燬時執行此操作。在這種情況下,如果我們需要尋找一個字典另一字典,然後搜索的第二個關鍵,我們可以這樣做這樣的(作爲一個例子):

found_value = one_dict.get(first_key, {}).get(second_key, False) 

通過這種方式,我們保證如果first_key不存在於字典中,我們至少會得到一個空的dict,這樣第二個.get()調用就不會在錯誤的對象上調用。

0

這是說

一個快捷方式,如果googletag的不是不確定的使用googletag的其他人創建一個新的空對象

0

這是分配undefined,這可能導致所有排序的問題之間的區別,以及有效空物體{}和空陣列[]

0

這會將googletag(例如)指定給自己或創建新的。

例如,在情況下,如果googletag具有價值,googletag將是價值,否則空對象

1

當您評估x ||形式的表達式時, y,如果轉換爲布爾值時x的計算結果爲true,則結果爲x。否則結果將是y。

通常這被用作快速捷徑來說:如果x有一個值,返回x;否則返回y作爲默認值。當然,「有價值」有點含糊。如果x的值是布爾值爲假的東西,如或,即使您想要x,也會得到y。所以在使用這種表達方式時你必須小心。

相關問題