Ответ 1
-
||
-expr1 || expr2
(логическое ИЛИ)Возвращает expr1, если он может быть преобразован в true; в противном случае возвращает expr2. Таким образом, при использовании с булевыми значениями || возвращает true, если оба операнда истинны; если оба значения false, возвращает false.
-
&&
-expr1 && expr2
(логический И)Возвращает expr1, если его можно преобразовать в false; в противном случае возвращает expr2. Таким образом, при использовании с булевыми значениями && возвращает true, если оба операнда истинны; в противном случае возвращает false.
Все значения в Javascript являются либо "правдивыми", либо "ложными".
Следующие значения эквивалентны false в условных операторах:
- ложь
- NULL
- undefined
- Пустая строка
""
(\''
) - Число 0
- Число NaN
Все остальные значения эквивалентны true.
Итак... var test = 0 || -1 ;
возвращает -1
.
Если он был var test = 0 || false || undefined || "" || 2 || -1
, он возвратил 2
Логический оператор на MDN