2010-07-15 20 views
1

Possible en double:
what’s the javascript “var _gaq = _gaq || []; ” for ?Que fait _gaq || [] accomplir pour le suivi du commerce électronique Google Analytics?

Dans l'exemple asynchrone du code de suivi du commerce électronique de Google Analytics, la déclaration du tableau est:

var _gaq = _gaq || [];

Je suis essayer de comprendre ce qu'ils font ici. Est-ce une véritable déclaration OR? Est-ce dû au traitement asynchrone de l'étiquette de script?

Merci!

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

+2

Identique à [quel est le javascript "var _gaq = _gaq || \ [\];" pour?] (Http://stackoverflow.com/questions/2538252/whats-the-javascript-var-gaq-gaq- pour) –

+0

Merci. J'ai cherché avant de poster et n'ai pas trouvé cette réponse. Désolé pour la répétition. – Lynn

Répondre

2

Si _gaq est faux/null, il initialise un nouveau tableau

Il est similaire à c opérateur coalesce null # 's ??

Il est un excellent moyen de paramètres par défaut de configuration sur une fonction

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

Donc, ceci est une vraie déclaration OU. Est-ce fait à cause d'async? – Lynn

0

|| est appelé default operator en javascript. Par:

var _gaq = _gaq || []; 

Ils voulaient: si _gaq ne définit pas que ce soit un tableau vide.

Mais ce que cela signifie vraiment est: si _gaq est Falsey laissez-le être un tableau vide.

Alors méfiez-vous que l'opérateur est ne se compare strictement-undefined plutôt si la valeur est Falsey. Donc, si vous avez false, null, NaN ou "" (chaîne vide), vous pouvez éviter ce raccourci.

+0

Ainsi, les dangers d'un langage vaguement typé. – Lynn