loading
본문 바로가기
자바스크립트 [JavaScript]

[JavaScript] 자바스크립트 단락회로 평가

by GSTGTS 2022. 3. 3.

[JavaScript] 단락회로 평가

자바스크립트의 단락회로 평가는 논리 연산자의 특성을 활용한다.

자바스크립트의 논리연산자를 보면 아래와 같다.

 

// and 연산자는 두 값이 모두 true일 때 true를 반환한다.

console.log(true && true);
>>> true

// or 연산자는 두 값 중 하나만 true이면 true를 반환한다.
console.log(true || false);
>>> true

// not 연산자는 true로 변환 가능한 값에 false를 반환한다.
console.log(!true)
>>> false

 

 

단일회로 평가는 단순히 true / false만이 아니라, truthy / flasy를  평가할 때 유용하게 사용할 수 있다.

 

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;
	// 둘 중 하나만 falsy하면 falsy한 값을 return한다.
};

let person;
const name = getName(person);
console.log(name);

// falsy한 값에 특정한 값을 반환하고 싶으면 아래와 같이 사용한다.


const getName = (person) => {
	const name = person && person.name;
    // name의 값이 truethy한지 falsy한지 비교한다.
    // 이 부분에서 name은 빈 문자열의 falsy한 undefined가 된다.
    
    return name || "객체가 아닙니다.";
    // falsy하기 때문에 name의 값이 아닌 || 뒤의 falsy한 값인 "객체가 아닙니다."를 반환한다.
};

let person;
const name = getName(person);
console.log(name);
>>> "객체가 아닙니다."

 

 

 

반응형

댓글