본문 바로가기
JavaScript

JavaScript nullish병합연산자 '??'

by 하이방가루 2022. 1. 19.
728x90
반응형

null도 아니고 undefined도 아닌 값을 찾을 수 있다.

 

let result = value1 ?? value2 ?? value3

  • 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가한다.
  • 값이 null도 아니고 undefined도 아니면 그 값을 반환한다.
  • 피연산자를 모두 평가했을 때 모든 피연산자가 null또는 undefined로 평가되는 경우 마지막 피연산자 값를 반환한다.

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

let age = 0;

 

alert( age || 19 );  // 19

alert( age ?? 19);  // 0

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

반면에 '??'의 평가 결과는 정확하게 null이나 undefined일 경우에만 19를 할당한다.

따라서 0이 할당될 수 있는 변수를 사용할 때 '||'보다 '??'가 더 적합하다.

괄호 없이 ??를 ||나 &&와 함께 사용하는 것은 금지되어 있다.

또한 ??는 대부분의 연산자보다는 나중에 평가되므로 괄호를 감싸서 사용하는 게 좋다.

728x90
반응형

'JavaScript' 카테고리의 다른 글

JavaScript 객체의 동작방식  (0) 2022.02.10
JavaScript break/continue와 레이블  (0) 2022.01.20
JavaScript 논리연산자  (0) 2022.01.19
JavaScript 동등연산자'=='와 일치연산자'==='  (0) 2022.01.19
JavaScript '+'연산자  (0) 2022.01.17

댓글