# 설명
- 모든 불리언 피연산자가 true가 되었을 때 해당 피연산자의 집합은 true가 된다.
- 왼쪽에서 오른쪽으로 평가할 때 처음으로 만나는 falsy한 피연산자의 값을 즉시 반환한다.
[ falsy한 값의 예시 ]
- false
- null
- NaN
- 0
- 빈 문자열("" or '' or ``)
- undefined
- 모두 truthy값이라면 마지막 피연산자의 값을 반환한다.
const a = 3;
const b = -2;
console.log(a > 0 && b > 0); // false
// b > 0의 값이 false이므로, 값 그대로 false 반환
- AND 연산자는 non-Boolean 값을 보존하고, non-Boolean값 그대로 반환한다.
result = "" && "foo"; // ""이 할당됨.
result = 2 && 0; // 0이 할당됨.
result = "foo" && 4; // 4가 할당됨. "foo", 4 둘다 truthy값이므로 마지막 피연산자인 4가 반환
# 단락 평가 (Short-Circuit evaluation)
논리적 AND 표현식은 단락 연산자이다.
각 피연산자는 불리언으로 변환되므로, 어떤 변환이 false로 판별되면 AND 연산자는 즉시 멈추고, false로 판별된 피연산자의 원래의 값을 반환한다.
나머지 피연산자는 평가하지 않는다.
function A() {
console.log("called A");
return false;
}
function B() {
console.log("called B");
return true;
}
console.log(A() && B());
// A()부터 평가. 'called A'가 로그에 찍히고, false값이므로 바로 평가 중단. false값 출력
//"called A" false;
*참조 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Logical_AND
'JavaScript' 카테고리의 다른 글
2차원 배열에서의 index error 처리 (0) | 2023.10.27 |
---|---|
[JavaScript] 옵셔널 체이닝 (?.) (0) | 2023.10.27 |
널 병합 연산자 ?? (Nullish coalescing operator) (1) | 2023.10.25 |
표현식과 문 (0) | 2023.09.21 |
스코프 의미, 규칙 및 종류 (2) | 2023.09.18 |