매번 헷갈리는 null 병합 연산자 정리하기.
null 병합 연산자(??): null과 undefined만을 false로 취급
or 연산자(||): falsy list(false, 0, undefined, NaN, null, "")를 false로 취급
위와 같이 null 병합 연산자는 null과 undefined만을 false로 취급한다.
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를 반환한다.