2014-04-03 21 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。所以在使用这种表达方式时你必须小心。

相关问题