Назад к вопросам
Intern
118
questionbank
В чем заключается особенность выполнения логической операции 'И'?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Особенность логической операции "И" (&&) в JavaScript заключается в ленивой (короткозамкнутой) оценке операндов:
- Вычисляется левый операнд.
- Если левый операнд приводится к ложному значению (
false,0,"",null,undefined,NaN), то правый операнд не вычисляется, и результатом всего выражения становится значение левого операнда. - Если левый операнд приводится к истинному значению, то вычисляется правый операнд, и результатом всего выражения становится значение правого операнда.
Это позволяет использовать && не только для проверки условий, но и как компактную альтернативу 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 }; - работает иначе