2010-07-15 53 views
1

可能重複:
what’s the javascript 「var _gaq = _gaq || []; 」 for ?_gaq ||是什麼? []完成Google Analytics電子商務跟蹤?

在谷歌分析的電子商務跟蹤代碼異步例如,數組的聲明是:

var _gaq = _gaq || [];

我試圖瞭解他們在這裏做什麼。這是一個真正的OR聲明?這是因爲腳本標籤的異步處理?

謝謝!

http://code.google.com/apis/analytics/docs/tracking/gaTrackingEcommerce.html#Example

+2

與[什麼是javascript「var _gaq = _gaq || \ [\];」for?](http://stackoverflow.com/questions/2538252/whats-the-javascript-var-gaq-gaq-爲) – 2010-07-15 17:08:03

+0

謝謝。我在發帖之前進行了搜索,沒有找到答案。對此重複抱歉。 – Lynn 2010-07-15 17:11:24

回答

2

如果_gaq是假/ null,則初始化一個新的陣列

它類似於C#的空COALESCE操作??

這是一個偉大的方式來設置默認值上的功能

function somefunc (a, b, c) { 
    a = a || 1; 
    b = b || 2; 
    c = c || 3; 

    return a + b + c; 
} 

var result = somefunc(); 
//result = 6; 

var result = somefunc(2,4); 
//result = 9; 
+0

所以,這是一個真正的OR語句。這是因爲異步完成嗎? – Lynn 2010-07-15 17:09:32

0

||在JavaScript中被稱爲default operator。通過:

var _gaq = _gaq || []; 

他們的意思是:如果_gaq沒有定義讓它是一個空的數組。

但它的真正含義是:如果_gaq是falsey讓它是一個空的數組。

所以提防作爲操作者不嚴格比較undefined,而如果該值是falsey。所以如果你得到了false,null,NaN""(空字符串),你可能想避免這個快捷方式。

+0

因此,鬆散類型語言的危險。 – Lynn 2010-07-15 17:19:21

相關問題