BackEnd

nulish ?? 연산자

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