본문 바로가기
자바 스크립트

자바 스크립트 null 병합 연산자 '??'

by y00ns00 2020. 12. 2.

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

 

a ?? b 의 평가 결과

- a가 null도 아니고 undefined도 아니면 a

- 그 외의 경우는 b

 

 

?? 와 || 의 차이

null 병합 연산자는 OR 연산자 || 와 상당히 유사해 보인다

실제로 ?? 를 || 로 바ㅜ꺼도 그 겨로가는 동일하기 까지 하다

 

차이점 

 - || 는 첫번째 true 값을 반환

 - ?? 는 첫번째 정의된 값을 반환

 

null 과 undefined 숫자 0 을 구분지어 다뤄야 할 때 이 차이점은 매우 중요한 역할을 한다.

 

let height = 0;

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

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

 

반면 height ?? 100의 평가 결과는 height가 정확하게 null이나 undefined일 경우에만 100이 됩니다.

 

 

?? 의 연산자 우선순위는 5이다.

또한 안정성 관련 이슈 때문에 ?? 는 &&나 || 와 함께 사용하지 못한다.

댓글