我讀了一個網站的網頁源代碼時,我發現這兩條線:爲什麼在JavaScript中使用這些條件運算符?
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
什麼條件||
運營商的分配變量的值時,有什麼意義?我不明白爲什麼||
將與空對象或空數組一起使用,以及它的用途是什麼。
我讀了一個網站的網頁源代碼時,我發現這兩條線:爲什麼在JavaScript中使用這些條件運算符?
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
什麼條件||
運營商的分配變量的值時,有什麼意義?我不明白爲什麼||
將與空對象或空數組一起使用,以及它的用途是什麼。
認爲它是這樣的:
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()
調用就不會在錯誤的對象上調用。
這是說
一個快捷方式,如果googletag的不是不確定的使用googletag的其他人創建一個新的空對象
這是分配undefined
,這可能導致所有排序的問題之間的區別,以及有效空物體{}
和空陣列[]
。
這會將googletag
(例如)指定給自己或創建新的。
例如,在情況下,如果googletag
具有價值,googletag
將是價值,否則空對象
當您評估x ||形式的表達式時, y,如果轉換爲布爾值時x的計算結果爲true,則結果爲x。否則結果將是y。
通常這被用作快速捷徑來說:如果x有一個值,返回x;否則返回y作爲默認值。當然,「有價值」有點含糊。如果x的值是布爾值爲假的東西,如假或,即使您想要x,也會得到y。所以在使用這種表達方式時你必須小心。
如果你在手冊中查找'||',它會變得很明顯。或者只是在控制檯中玩一下。 – Jon