function returnFalse () {
console.log('False 함수');
return false;
}
function returnTrue () {
console.log('True 함수');
return true;
}
console.log(returnFalse() && returnTrue());
실행 순서 및 결과
- returnFalse() 실행
- console.log('False 함수')가 실행되며 False 함수가 출력된다.
- false를 반환
- 논리 AND 연산자(&&) 평가
- &&는 왼쪽 값이 false면 오른쪽을 평가하지 않고 바로 false를 반환
- 따라서 returnTrue()는 실행되지 않는다.
- 최종 결과 출력
- console.log(false)가 실행되어 false가 출력
단락 평가(Short-circuit Evaluation) 응용
False || True의 응용
const name = person || "person의 값이 없음";
console.log(name);
- person이라는 매개변수에 값이 없으면 JavaScript는 undefined를 할당한다.
- 예를 들어 person이 undefined면 undefined || "person의 값이 없음"이 평가된다. || 연산자는 왼쪽 값이 falsy일 때 오른쪽 값을 반환하니까 콘솔에는 다음이 출력된다.
True || True의 응용
const name = person && person.name;
console.log(name || "person의 값이 없음");
- person 매개변수에 객체가 들어오면 위와 같은 코드가 실행된다.
- 예를 들어, person이 { name: "오영진" }이라면 person && person.name은 "오영진"이 된다. 이건 true && true와 같고, && 연산자는 왼쪽 값이 truthy면 오른쪽 값을 반환한다.
- 이후 name || "person의 값이 없음"에서는 name이 "오영진"이라는 truthy 값이라서 단락 평가로 "person의 값이 없음"은 평가되지 않는다. 그래서 콘솔에는 이렇게 출력된다.
오영진
요약
- || 연산자는 왼쪽 값이 falsy면 오른쪽 값을 반환한다.
- && 연산자는 왼쪽 값이 truthy면 오른쪽 값을 반환한다.
- 이걸 활용하면 기본값을 설정하거나 값이 있을 때만 특정 값을 가져올 수 있다.