带有||的Javascript语句 {};

Duc*_*Anh 10 javascript

我正在学习javascript,今天我找到了这段代码:

window.Picture2 = window.Picture2 || {};
Run Code Online (Sandbox Code Playgroud)

我不明白|| {}; 有人可以帮我解释一下吗?Tks这么多:)

Chr*_*oph 7

这是将默认值分配给全局变量的危险方法Picture2.

window.Picture2 = window.Picture2 || {};
Run Code Online (Sandbox Code Playgroud)

如果没有定义,它将初始化window.Picture2为新的Object {}.但是,由于这是对真实性的检查,Picture2如果它具有任何这些虚假值,也将被分配一个空对象:

// these are all falsy
0, NaN, null, '', undefined, false
Run Code Online (Sandbox Code Playgroud)

这可能不是所有这些情况下,期望的行为,特别是对0,NaN,false''价值.

有一个ecmascript 6的提议添加一个真正检查的默认运算符,undefined而不是其他:

window.Picture2 ??= {};
Run Code Online (Sandbox Code Playgroud)


Aru*_*hny 6

它为默认的空对象分配window.Picture2if window.Picture2is undefined(falsy)