Short-circuit Evaluation
Javascript 논리 연산식에서 단락 평가라는것이 존재한다.
일단 간단한 논리 연산식을 살펴보자.
function returnFalse() {
console.log("False 함수");
return false;
}
function returnTrue() {
console.log("True 함수");
return true;
}
console.log(returnFalse() && returnTrue());
/* 결과 :
False 함수
false
*/
console.log에 AND 연산자를 사용하여 false와 true를 반환하는 함수를 호출했는데
두 번째인 returnTrue 함수 자체는 실행이 안됐다.
그 이유는 단락 평가 때문이다.
😳 단락 평가란 ?
논리 연산식에서 첫 번째 피연산자의 값 만으로도 두 번째 피연산자 값 자체에 접근을 안하는 것을 말한다.
위 예시처럼 AND 연산자는 첫 번째 피연산자가 False면 무조건 False를 반환해야 하기 때문에 뒤에 있는 피연산자들의 값 자체에 접근을 안한것이다
그렇다면 OR은 첫 번째 피연산자가 True 무조건 True를 반환하기 때문에 뒤에 있는 피연산자들은 접근을 안한다.
👀 활용 예시
function printName(person) {
const name = person && person.name;
console.log(name || "person의 값이 없음");
}
printName(); // person의 값이 없음
printName({ name: "김철수" }); // 김철수
1. name이라는 변수에 논리 연산식으로 person 객체의 값이 없으면 Falsy한 값이 들어가며 뒤 person.name은 무시된다.
2. 만약 person의 객체에 name이 있다면 person이 Truthy한 값이기 때문에 person.name의 값이 name에 들어간다.
3. console.log에는 name의 값이 true면 뒤 "person의 값이 없음"은 무시되고 false면 뒤 피연산자의 값이 실행된다.
'• Javascript' 카테고리의 다른 글
[Javascript] 널 병합 연산자(Nullish coalescing operator) (1) | 2023.03.07 |
---|