Логический оператор || в javascript 0 обозначает логическое значение false?

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

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

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

тогда вывод в консоли -1

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

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

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

2 ответа

Решение
  • || - expr1 || expr2 (Логическое ИЛИ)

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

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

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

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

  • ложный
  • ноль
  • не определено
  • Пустая строка "" (\ '')
  • Число 0
  • Количество NaN

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


Так... var test = 0 || -1 ; возвращается -1,

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


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

Вы можете использовать нулевой оператор объединения (??)

Оператор объединения с нулевым значением (??) - это логический оператор, который возвращает его правый операнд, когда его левый операнд равен нулю или неопределенному, и в противном случае возвращает его левый операнд.

Только null и undefined будут ложными. 0 будет считаться верным. Но будьте осторожны: пустая строка тоже будет считаться истинной!

Другие вопросы по тегам