Утверждение Javascript с || {};

Im, изучающий javascript, и сегодня я нашел этот код:

window.Picture2 = window.Picture2 || {};

Я не понимаю || {}; Может ли кто-нибудь объяснить это мне? Tks так много:)

Ответ 1

Это опасный способ присвоить значение по умолчанию глобальной переменной Picture2.

window.Picture2 = window.Picture2 || {};

Это инициализирует window.Picture2 как новый объект {}, если он не определен. Однако, поскольку это проверка правдоподобия, Picture2 также будет присвоен пустой объект, если он имеет какие-либо из этих значений ложности:

// these are all falsy
0, NaN, null, '', undefined, false

который может не быть желательным поведением для всех этих случаев, особенно для значений 0, NaN, false или ''.

Есть предложение для ecmascript 6 добавить оператор по умолчанию, который действительно проверяет undefined и ничего больше:

window.Picture2 ??= {};

Ответ 2

Он присваивает пустой объект по умолчанию window.Picture2, если window.Picture2 - undefined (falsy)

Ответ 3

Он проверит, что .Picture2 был определен, если он использует это значение, иначе назначьте Window.Picture2 в новый объектный литерал.

В качестве состояний @Christoph - Picture2 будет назначен новый объектный литерал, если объект falsy.

http://www.sitepoint.com/javascript-truthy-falsy/

Ответ 4

Он читается как:

Если window.Picture2 - undefined или null, присвойте пустой объект window.Picture2

Ответ 5

Если значение window.Picture2 равно undefined (false при условной оценке), то OR (||) вызывается, а window.Picture2 становится пустым.