Операция И JavaScript в присвоении

Я знаю, что в 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 и мне любопытно относительно того, что произошло бы с присвоением в сочетании с операцией И.

59
задан Bergi 22 October 2015 в 09:14
поделиться

3 ответа

По сути, оператор логического И ( && ) вернет значение второго операнда, если первый истинный , и он вернет значение первого операнда, если оно само по себе является ложным , например:

true && "foo"; // "foo"
NaN && "anything"; // NaN
0 && "anything";   // 0

Обратите внимание, что значения ложный - это те значения, которые приводят к ложному при использовании в логический контекст, это null , undefined , 0 , NaN , пустая строка и, конечно, false ], все остальное приводит к истинному .

76
ответ дан 24 November 2019 в 18:13
поделиться

Цитата Дугласа Крокфорда 1 :

Оператор && возвращает значение своего первого операнда, если первый операнд является ложным. В противном случае он возвращает значение второго операнда.


1 Дуглас Крокфорд: JavaScript: Хорошие моменты - стр. 16

18
ответ дан 24 November 2019 в 18:13
поделиться

&& иногда называют охранником оператором.

variable = indicator && value

его можно использовать для установки значения, только если индикатор правдивый.

26
ответ дан 24 November 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: