Два символа канала (OR) в этой строке Javascript

Возможный дубликат:
Что означает "options = options || {}" в Javascript?

Я видел это в JS:

item = item || {};

Я предполагаю, что это вариация тройного оператора, но что на самом деле делает?

Ответ 1

(expr1 || expr2)

"Возвращает expr1, если он может быть преобразован в true, иначе возвращает expr2".

источник

Поэтому, когда expr1 является (или оценивает) одним из этих 0,"",false,null,undefined,NaN, тогда expr2 возвращается, иначе expr1 возвращается

Ответ 2

Он называл избыточность, но в этом случае это хорошо. В принципе, если item не определен (или иначе ложный (false, 0, ""...), то мы даем ему значение по умолчанию.

Наиболее распространенный пример:

evt = evt || window.event;

Ответ 3

Если элемент существует, установите элемент в элемент или установите его на {}

Ответ 4

Он равен:

if( !item ){ item = {}; }