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이다.
또한 안정성 관련 이슈 때문에 ?? 는 &&나 || 와 함께 사용하지 못한다.
'자바 스크립트' 카테고리의 다른 글
자바스크립트 화살표 함수 (0) | 2020.12.04 |
---|---|
자바 스크립트 while 과 for 반복문 (0) | 2020.12.04 |
자바스크립트 논리 연산자 (0) | 2020.12.02 |
자바스크립트 if와 ?를 사용한 조건처리 (0) | 2020.12.02 |
자바스크립트 비교 연산자 (0) | 2020.12.02 |
댓글