Оператор AND && выполняет следующие действия:
- Оценить операнды слева направо.
- Для каждого операнда преобразовать его в логическое значение. Если результат равен false, остановите и верните исходное значение этого результата .
- Если все другие операнды были оценены (т.е. все они были правдивыми), верните последний операнд.
Как я уже сказал, каждый операнд конвертируется в логическое значение, если он равен 0, это истинно , а все остальные значения, отличные от 0 (1, 56, -2 и т. Д.), Равны falsy
Другими словами, AND возвращает первое ложное значение или последнее значение, если ничего не найдено.
// if the first operand is truthy,
// AND returns the second operand:
return 1 && 0 // 0
return 1 && 5 // 5
// if the first operand is falsy,
// AND returns it. The second operand is ignored
return null && 5 // null
return 0 && "no matter what" // 0
Мы также можем передать несколько значений подряд. Посмотрите, как возвращается первый ложный:
return 1 && 2 && null && 3 // null
Когда все значения верны, возвращается последнее значение:
return 1 && 2 && 3 // 3, the last one
Подробнее о логическом операторе можно узнать здесь https://javascript.info/logical-operators