nullish 병합 연산자 ??
??을 사용하면 여러 피연산자 중 값이 '확정되어 있는' 변수를 찾을 수 있다.
예를 들어
x = a ?? b
라는 코드는
a가 null이나 undefined가 아니면 a
그 외에는 b
라는 의미를 나타낸다. 이는 아래 코드와 같다.
x = (a !== null && a !== undefined) ? a : b;
값을 여러개 나열하여 정의된 값을 찾아낼 수도 있다.
x = a ?? b ?? c
라면 null이나 undefined가 아닌 첫 번째 피연산자를 반환한다.
?? vs ||
??는 or 연산자 ||과 비슷해 보이지만 차이점이 존재하는데
||는 첫 번째 truthy 값을 return하는 반면, ??는 첫번쨰로 defined된 값을 return한다.
이는 0과 null, undefined를 구분할 때 중요한 요소가 된다.
예를 들어
a = 0
console.log(a || 100); // 100
console.log(a ?? 100); // 0
위 코드에서 a는 0으로 falsy한 값이기 때문에 || 연산자에서는 0이 아닌 100(trythy)을 return한다.
그러나 ??는 정의된 값을 return하기 때문에 0을 return한다.
참고
모던 JavaScript 튜토리얼 - nullish 병합 연산자 ??
'Frontend > JavaScript - ES6' 카테고리의 다른 글
[JS] 옵셔널 체이닝 (Optional Chaning) (0) | 2022.02.26 |
---|---|
[JS] filter - 배열 성분 거르기 (0) | 2022.01.09 |
[JS] Interval, Timeout, padStart, padEnd (0) | 2022.01.09 |
[JS] local storage - 브라우저에 저장 (0) | 2022.01.09 |
[JS] event - EventListener 실행 시 실행 함수의 파라미터 (0) | 2022.01.09 |