FrontEnd/JavaScript

값이 확정되어있는 피연산자를 찾는 법 = nullish 병합 연산자 '??'

CoderHan 2023. 1. 24. 05:53
반응형

nullish병합 연산자란 뭘까?

"nullish 병합 연산자(nullish coalescing operator) ??를 사용하면 짧은 문법으로 여러 피연산자 중 그 값이 ‘확정되어있는’ 변수를 찾을 수 있습니다. " 라고 설명하고 있다.

 

여기서 확정되어 있는이란 null이나 undefined가 아니라는 뜻이다.

 

let firstName = null;
let secondName = null;
let nickName = "David";

console.log(firstName??secondName??nickName??"익명")

위 코드는 출력해보면

nickName인 "David"가 출력된다.

만약 nickName까지 undefined였다면 마지막에 있는 "익명"이 출력됐을 것이다.

 

nullish연산자는 ||(OR연산자)와 비슷한 것처럼 보이지만 매우 다른 차이를 가지고 있습니다.

let percent = 0;

console.log(percent||"Error") // Error
console.log(percent??"Error) // 0

OR연산자는 첫번째 truthy값을 반환하므로 0은 falsy값에 해당하기 때문에 Error을 출력합니다.

그러나 nullish연산자는 성질에 의해 undefined나 null값일 때만 우항에 있는 피연산자를 출력하므로 0를 출력합니다.

 

이러한 특징때문에 0을 할당받을 수 있는 변수에 대한 연산을 할 때는 ||보다 nullish를 사용하는 것이 적절합니다.

 

안전성 이슈로 인해 nullish연산자(??)는 &&나 ||와 함께 사용하지 못하므로 주의하세요!

 

더욱 자세한 설명은 아래 링크 글을 참조하시면 좋습니다.

https://ko.javascript.info/nullish-coalescing-operator

반응형