在Google Analytic的电子商务跟踪代码的异步示例中,数组的声明为:
var _gaq = _gaq || [];
我正在努力了解他们在这里做了什么。这是真正的OR
陈述吗?这是因为脚本标签的异步处理吗?
谢谢!
http://code.google.com/apis/analytics/docs/tracking/gaTrackingEcommerce.html#Example
答案 0 :(得分:2)
如果_gaq为false / null,则初始化一个新数组
它类似于c#的null coalesce operator ??
这是设置函数默认值的好方法
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;
答案 1 :(得分:0)
||
在javascript中称为default operator
。由:
var _gaq = _gaq || [];
他们的意思是:如果未定义_gaq
,则将其设为空数组。
但它的真正含义是:如果_gaq
是假的,那就让它成为一个空数组。
所以要注意,因为运营商并非严格比较与undefined
,而是值为false。因此,如果您有false
,null
,NaN
或""
(空字符串),您可能需要避免使用此快捷方式。