当我找到这两行时,我正在阅读一个网站的页面源代码:
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
在分配变量时,条件||
运算符的意义是什么?值?我不明白为什么||
将与空对象或空数组一起使用,以及它用于何种目的。
答案 0 :(得分:1)
这样想:
var my_var = false || 34;
alert(my_var); //what do you see?
如果前一个条件为真,则会将其分配给my_var
。否则,这将是第二个条件。
通过这种方式,可以保证他们拥有一个可以与脚本其余部分一起使用的对象。例如,Python在链接dict.get()
调用时会执行此操作,以确保它不会爆炸。在这种情况下,如果我们需要搜索另一个字典的dict然后搜索那个第二个键,我们就可以这样做(作为例子):
found_value = one_dict.get(first_key, {}).get(second_key, False)
通过这种方式,我们保证如果在{d}中不存在first_key
,我们至少会得到一个空的dict
,以便第二个.get()
来电不是&#39} ; t调用了错误的对象。
答案 1 :(得分:1)
评估x ||形式的表达式时y,如果x在转换为布尔值时求值为true,则结果为x。否则结果将为y。
通常这用作快捷方式:如果x有值,则返回x;否则返回y作为默认值。当然,“有价值”有点模糊。如果x的值是布尔值为false的值,例如 false 或 0 ,那么即使你想要x,你也会得到y。所以在使用这种表达时你必须要小心。
答案 2 :(得分:0)
这是说
的捷径如果googletag未定义,请使用googletag else创建新的空对象
答案 3 :(得分:0)
分配undefined
(可能导致各种问题)和有效空对象{}
和空数组[]
之间的区别。
答案 4 :(得分:0)
这会将googletag
(例如)分配给自己或创建一个新的。
例如,如果googletag
有值,googletag
将是该值,否则为空对象