Операторы этого типа используют ленивый механизм для своих вычислений, и эта концепция называется коротким циклом в javascript. По сути, JS возвращает значение, как только он считает, что для вычисления этого выражения больше не требуется вычислений. Таким образом, если его оператор && вернется, как только он обнаружит первый неверный (0, "", null, undefined, NaN), как для оператора &&, если какой-либо из операндов неверный, нет проверки точки Операнды как выражение уже неверны, поэтому он возвращает это значение и завершает работу, теперь, если все операнды верны, он проверяет до последнего и возвращает последнее значение. Для || как раз наоборот, как только он находит первое истинное значение, которое он возвращает, в противном случае продолжает проверять до последнего и возвращает его.