[JS] 단축 평가 논리 계산법

jung_ho9 개발일지·2022년 11월 30일
0

JavaScript

목록 보기
11/19
post-thumbnail
post-custom-banner

단축 평가 논리 계산법

단축 평가 (short-circuit evaluation) 논리 계산법이은 논리 연산자를 조금 더 유용하게 사용 할 수 있도록 도와준다. 논리 연산자를 사용할 때 무조건 true 혹은 false를 사용해야 되는 것은 아니다. 해당 값이 Truthy 하냐 Falsy 하냐에 따라 결과가 달라진다.

const user = {
	name : 'jung ho'
}

function getUserName(obj) {
	return obj.name;
}

const username = getUserName(user); (1)
console.log(username) // 'jung ho'   
const username = getUserName();     (2)
console.log(username) // Uncaught TypeError

Uncaught TypeError: Cannot read properties of undefined (reading 'name')

그 예로 (1)번과 같이getUserName에 매개변수 값을 정상적으로 넘겨주면 jung ho라는 결과가 나오겠지만 (2)번과 같이 제대로 매개변수를 넘겨주지 않으면 인자로 들어온 게 없기 때문에 name을 찾을 수 없어 undefined 에러가 발생한다. 하지만 해당 에러를 발생시키고 싶지 않다면 단축 평가 놀리 계산법을 사용하면 된다.

&& 연산자 사용

const user = {
	name : 'jung ho'
}

function getUserName(obj) {
	return obj && obj.name;
}

const username = getUserName();  
console.log(username) //undefined

이게 작동되는 이뉴는 A && B 연산자를 사용하게 될 때 A에 Truthy한 값이라면, B가 결과값이 된다.
반면, A가 Falsy 한 값이라면 결과는 A가 된다.

true && true // true
true && false // false

|| 연산자 사용

const noUserName = {
	name : ''
}

function getUserName(obj) {
    const name = obj && obj.name;
 	 return name ||  '이름이 없다'; 
}

const username = getUserName(noUserName);  
console.log(username) //이름이 없다.

해당 코드에 A || B 는 만약 A 가 Truthy 할경우 결과는 A 가 됩니다. 반면, A 가 Falsy 하다면 결과는 B 가 됩니다. A와 B가 둘 다 Falsy한 값이라면 B값이 출력된다.

true || false // true
false || true // true
profile
꾸준하게 기록하기
post-custom-banner

0개의 댓글