Логический оператор || в 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 будет считаться верным. Но будьте осторожны: пустая строка тоже будет считаться истинной!