Назад к вопросам
Intern
118
questionbank

В чем заключается особенность выполнения логической операции 'И'?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Особенность логической операции "И" (&&) в JavaScript заключается в ленивой (короткозамкнутой) оценке операндов:

  1. Вычисляется левый операнд.
  2. Если левый операнд приводится к ложному значению (false, 0, "", null, undefined, NaN), то правый операнд не вычисляется, и результатом всего выражения становится значение левого операнда.
  3. Если левый операнд приводится к истинному значению, то вычисляется правый операнд, и результатом всего выражения становится значение правого операнда.

Это позволяет использовать && не только для проверки условий, но и как компактную альтернативу if для выполнения действий или присваивания значений, когда первое условие истинно (idiom "short-circuit evaluation").

// Пример ленивой оценки
let count = 0;
true && count++; // count становится 1
false && count++; // count остается 1, правый операнд не выполнился

// Пример использования как альтернативу if
let userData = { username: 'test' };
let username = userData && userData.username; // username будет 'test', если userData не null/undefined

let config = null;
let options = config ?? { timeout: 1000 }; // Используем ?? для более явной проверки на undefined/null
                                       // Использование &&: let options = config || { timeout: 1000 }; - работает иначе