Оператор ||
означает запуск следующего оператора, если предыдущий является ложным.
Просто посмотрите на это:
if (thing == "ok" || otherthing == "notok") {
Я думаю, что вы знаете, что это значит.Введите блок, если любой оператор true
.Он «запускается», сначала проверяя левый оператор (thing == "ok"
) и, если false, затем выполняет следующий оператор (otherthing == "notok"
).
То же самое можно сделать, чтобы назначить переменным:
var result = thing == "ok" || otherthing == "notok";
Эта вещь приведет к результату true
, если левый или правый оператор вернет true
, следуя той же логике, что я объяснил выше.
Теперь, если мы пойдемдалее с этой логикой мы можем сделать это:
var result = FIRST_STATEMENT || SECOND_STATEMENT;
Это запустит FIRST_STATEMENT
, получит значение и проверит, не является ли false
.Если результат не ложный, запустится SECOND_STATEMENT
и вернет значение.если FIRST_STATEMENT
не равно false
, вместо этого будет возвращено это значение (поскольку не будет выполняться SECOND_STATEMENT
).
Короче , оператор ||
будет оценивать операторыслева направо и верните первое, отличное от false
.
PD: обратите внимание, что null
, undefined
, ""
, NaN
и 0
совпадают сfalse
оператор.
PD2: Для пояснения, ни одно из этих значений не будет тройным (===
) друг к другу.