단락회로 평가는 왼쪽에서 오른쪽으로 진행되는 논리연산의 순서를 이용한 문법이다.
console.log(false && true);
// 첫번째 요소가 false이면 뒤에는 볼 필요없이 false를 반환한다.
console.log(true || false);
// 앞에 값이 true이면 뒤에는 볼 필요없이 true가 반환된다.
const getName = (person) => {
if (!person) {
return "객체가아닙니다";
}
return person.name;
}
let person;
const name = getName(person);
console.log(name);
위의 식을 단락회로 평가를 이용해 더 간단히 표현할 수 있다.
const getName = (person) => {
return person && person.name;
}
let person;
const name = getName(person);
console.log(name);
위의 getName 함수에서 person은 undefined이기 때문에 person.name에 접근하지 않고 리턴값이 반환된다.
const getName = (person) => {
const name = person && person.name;
return name || "객체가 아닙니다";
};
let person = null;
const name = getName(person);
console.log(name);
// 객체가 아닙니다가 출력된다.
let person2 = {name:"옥수수"};
const name2 = getName(person2);
console.log(name2);
// 옥수수가 출력된다.