728x90
최근 추가된 문법중에 ?? 연산자가 추가되었다. 해당 연산자에 대해서 알아보자.
a ?? b
위 연산자의 결과는 아래와 같다.
a가 null도 아니고 undefined도 아니면 a이고, 그 외에는 b가 오게된다.
x = (a !== null && a !== undefined) ? a : b;
연산자를 보다 보니, ||이랑 같은역할을 하는 것이 아닌가? 라는 생각이 들었다. 실제로 대부분의 케이스에서는 ||과 ??이 거의 유사하게 동작하게 된다.
단, 0이 falsy이기 때문에 0이 입력되는 경우 ?? 연산자와 || 연산자간 차이가 발생하게 된다.
0 ?? b => 0
0 || b ==> b
만약 변수에 0이 할당될 수 있는 경우에 해당 연산자를 사용하면 효율적일 것이다.
728x90