Логический оператор || в javascript 0 обозначает логическое значение false? - PullRequest
4 голосов
/ 06 марта 2012

Я случайно узнал следующий код

Вот код и очень просто:

var test = 0 || -1 ;
console.log(test);

тогда вывод на консоль будет -1

и почему-то я действительно новичок в JavaScript,

все, о чем я думаю, это то, что 0 обозначает логическое False в JS, и поэтому оператор ||, кажется, игнорирует 0 и присваивает значение -1 переменной

так я прав? я просто хочу подтвердить

1 Ответ

16 голосов
/ 06 марта 2012
  • || - expr1 || expr2 (логическое ИЛИ)

    Возвращает expr1, если его можно преобразовать в true;в противном случае возвращает expr2.Таким образом, при использовании с логическими значениями, ||возвращает true, если любой из операндов равен true;если оба имеют значение false, возвращает false ..

  • && - expr1 && expr2 (логическое И)

    Возвращает expr1, если его можно преобразовать в false;в противном случае возвращает expr2.Таким образом, при использовании с логическими значениями && возвращает true, если оба операнда имеют значение true;в противном случае возвращает false.

Все значения в Javascript являются либо "правдивыми", либо "ложными".
Следующие значения эквивалентны false в условных выражениях:

  • false
  • null
  • undefined
  • Пустая строка "" (\ '')
  • Число 0
  • Число NaN

Все остальные значения эквивалентны true.


Итак ...var test = 0 || -1 ; возвращает -1.

Если бы оно было var test = 0 || false || undefined || "" || 2 || -1, оно вернуло бы 2


Логический оператор на MDN

...