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 |
댓글