null 병합 연산자 '??'

이말감·2021년 10월 23일
0

JavaScript

목록 보기
12/13

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

null 병합 연산자(nullish coalescing operator) ?? 를 사용하면 짧은 문법으로 여러 피연산자 중 그 값이 '확정되어있는' 변수를 찾을 수 있다.

a ?? b의 평가 결과는 다음과 같다.

  • a가 null도 아니고 undefined도 아니면 a
  • 그 외의 경우는 b

'??'와 '||'의 차이

  • ||는 첫 번째 truthy 값을 반환한다.
  • ??은 첫 번째 정의된 값을 반환한다.
height = height ?? 100

height에 값이 정의되지 않은 경우 height엔 100이 할당된다.

let height = 0;

alert(height || 100); // 100
alert(height ?? 100); // 0

height || 100은 height에 0을 할당했지만 0을 falsy한 값으로 취급했기 때문에
null이나 undefined를 할당한 것과 동일하게 처리한다.
따라서 height || 100의 평가 결과는 100이다.

반면 height ?? 100의 평가 결과는 height가 정확하게 null이나 undefined일 경우에만 100이 된다. 예시에선 height에 0이라는 값을 할당했기 때문에 얼럿창에는 0이 출력된다.

profile
전 척척학사지만 말하는 감자에요

0개의 댓글