728x90
자바스크립트 기본(12) - 병합 연산자 '??'
자바스크립트의 nullish 병합 연산자 ??
를 사용하면 짧은 문법으로
여러 피연산자 중 그 값이 확정되어있는 변수를 찾을 수 있다.a ?? b
의 결과 값은 a
가 null
또는 undefined
가 아니라면 a
, 그 외는 b
이다.
x = a ?? b
와 동일한 코드를 작성하려면
x = (a !== null && a !== undefined) ? a : b;
이렇게 긴 코드가 발생한다.
'??'와 '||'
이전에 OR연산자 ||
와 상당히 유사해보이며 같은 결과를 보이기도 한다.
그러나 ||
은 첫 번째 truthy 값을 반환하며 ??
는 첫 번째 정의된 값을 반환하는 차이가 있다.
만약 변수에 0
이라는 수를 할당한 경우 ||
에 의해서는 falsy 값으로 처리되어 선택되지 않지만??
연산자에 의해서는 0
이라는 값이 결과 값으로 반환된다.
우선순위
??
연산자의 우선순위는 5로 꽤 낮은 편이므로, 복잡한 표현식 내 값을 선택할 때는 괄호를 쓰는 것이 좋다.??
는 ||
와 &&
를 함께 사용할 수 없는데, 이는 ||
를 ??
로 전환하면서 발생하는 실수를 방지한다.
let x = 1 && 2 ?? 3; // SyntaxError: Unexpected token '??'
let x = (1 && 2) ?? 3; // 동작(2)
728x90
'TIL > 자바스크립트' 카테고리의 다른 글
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(14) (0) | 2023.05.21 |
---|---|
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(13) (0) | 2023.05.20 |
[TIL] 오늘의 자바스크립트 - Spread Operator (0) | 2023.05.12 |
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(11) (0) | 2023.05.11 |
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(10) (0) | 2023.05.10 |