Я знаю, что в JavaScript можно сделать:
var oneOrTheOther = someOtherVar || "these are not the droids you are looking for...";
где переменная oneOrTheOther
возьмет значение первого выражения, если это не будет null
, undefined
, или false
. В этом случае это присвоено значению второго оператора.
Однако, что делает переменную oneOrTheOther
присвойте тому, когда мы будем использовать логическую операцию И?
var oneOrTheOther = someOtherVar && "some string";
Что произошло бы когда someOtherVar
неложь?
Что произошло бы когда someOtherVar
ложь?
Просто изучив JavaScript и мне любопытно относительно того, что произошло бы с присвоением в сочетании с операцией И.
По сути, оператор логического И ( &&
) вернет значение второго операнда, если первый истинный , и он вернет значение первого операнда, если оно само по себе является ложным , например:
true && "foo"; // "foo"
NaN && "anything"; // NaN
0 && "anything"; // 0
Обратите внимание, что значения ложный - это те значения, которые приводят к ложному
при использовании в логический контекст, это null
, undefined
, 0
, NaN
, пустая строка и, конечно, false
], все остальное приводит к истинному
.
Цитата Дугласа Крокфорда 1 :
Оператор
&&
возвращает значение своего первого операнда, если первый операнд является ложным. В противном случае он возвращает значение второго операнда.
1 Дуглас Крокфорд: JavaScript: Хорошие моменты - стр. 16
&&
иногда называют охранником оператором.
variable = indicator && value
его можно использовать для установки значения, только если индикатор правдивый.