null 병합 연산자

Yeongjong Kim·2022년 1월 5일
0

매번 헷갈리는 null 병합 연산자 정리하기.

정의

null 병합 연산자(??): null과 undefined만을 false로 취급
or 연산자(||): falsy list(false, 0, undefined, NaN, null, "")를 false로 취급

차이점

위와 같이 null 병합 연산자는 null과 undefined만을 false로 취급한다.

or 연산자(||)와 비교해보기

false || 1 // 1
false ?? 1 // false

0 || 1 // 1
0 ?? 1 // 0

NaN || 1 // 1
NaN ?? 1 // NaN

"" || 1 // 1
"" ?? 1 // ""

undefined || 1 // 1
undefined ?? 1 // 1

null || 1 // 1
null ?? 1 // 1

언제 사용할 수 있는가?

어떤 특정 변수, 프로퍼티, 요소가 비어있는 경우를 null로 명확하게 지정한 경우에 사용할 수 있다. 즉, undefined는 정의가 되지 않았기 때문에 빈 값이고, 추가로 null 만을 빈 값으로 인정하는 경우다. false, "", 0, NaN 등 나머지 falsy에 속하는 값은 값으로 인정하고 싶다는 뜻이다.

++ 추가로 옵셔널 체이닝 연산자도 위와 같은 논리라고 생각하면 된다. 접근 연산자 . 을 사용하여 프로퍼티에 접근할 때, 변수에 할당 된 값이 null이거나 undefined라면 typeError를 발생하지 않고 undefined를 반환한다.

profile
Front 💔 End

0개의 댓글