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.