При коротком замыкании JavaScript выражение вычисляется слева направо до тех пор, пока не будет подтверждено, что результат выполнения остальных условий не повлияет на уже оцененный результат. Если результат ясен еще до завершения вычисления выражения, он закорачивается, и результат будет возвращен. Оценка короткого замыкания позволяет избежать ненужной работы.
В JavaScript || является примером выполнения короткого замыкания. Этот оператор сперва анализирует выражение слева от него, и, если оно ложно, анализирует выражение справа. В любом случае, он возвращает первое истинное выражение.
Логические операторы || и && лево-ассоциативны, то есть их параметры вычисляются слева направо. Если первое значение оказалось true в || или false в && – конечный результат уже предрешен, он будет тем же. В этом случае происходит так называемое «короткое замыкание» (short-circuiting) – оставшийся второй аргумент не вычисляется за ненадобностью.