Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Логический оператор И (&&) (конъюнкция) для набора операндов со значением типа Boolean будет true только в случае, если все операнды содержат значение true. В противном случае это будет false.
В целом, оператор вернёт значение первого ложноподобного операнда при вычислении, либо значение последнего операнда, если все операнды оказались истиноподобными.
Логическое И (&&) вычисляет операнды слева направо, возвращая сразу значение первого попавшего ложноподобного операнда; если все значения истиноподобны, возвращается значение последнего операнда.
Если значение может быть преобразовано в true, то оно рассматривается как истиноподобное (truthy). Если же значение может быть преобразовано в false, то оно называется ложноподобным (falsy).
Примеры выражений, которые могут быть преобразованы в false:
Оператор И возвращает небулевы значения как есть:
Несмотря на то, что оператор && может использоваться с операндами, не содержащие логических значений, он всё равно останется булевым оператором, поскольку его возвращаемое значение всегда можно преобразовать в булевый примитив. Чтобы явно преобразовать возвращаемое значение этого оператора (или вообще любое выражение) в соответствующее значение булевого типа, используйте двойной оператор НЕ или конструктор Boolean.
Оператор логического И вычисляет выражение по сокращённой схеме. Каждый операнд приводится к булевому значению, если результат одного преобразования оказывается false, тогда оператор И останавливает дальнейшее вычисление выражения и возвращает исходное значение этого ложноподобного операнда. Поэтому оставшиеся операнды не будут вычислены.
В качестве примера рассмотрим следующий псевдокод.
(ложноподобное выражение) && следующее выражениеПоскольку первый операнд (ложноподобное выражение) имеет ложное значение, то следующее выражение никогда не будет вычислено. Если следующее выражение содержало функцию, то она бы никогда не была вызвана. Посмотрите пример ниже:
Оператор И имеет более высокий приоритет, чем оператор ИЛИ, поэтому оператор && выполнится раньше оператора || (см. приоритет операторов).
В следующем коде показаны примеры использования оператора && (логическое И).
Следующая операция с булевыми значениями:
всегда эквивалентна:
Следующая операция с булевыми значениями:
всегда эквивалентна:
Поскольку логические выражения вычисляются слева направо, всегда можно удалить круглые скобки из сложного выражения при условии соблюдения определенных правил.
Следующая составная операция с булевыми значениями:
это то же самое, что и:
| ECMAScript® 2027 Language Specification # prod-LogicalANDExpression |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 мар. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.