프로그래밍/Javascript

Javascript Nullish coalescing operator

2020. 7. 28. 01:15

 

서울특별시 용산구 원효로

 

 자바스크립트를 사용하다 보면 undefined 때문에 뜨는 오류가 상당하다. 이를 해결하기 위해서 논리연산자를 사용하기도 한다. 이 경우 논리연산자는 다음과 같이 활용한다.

 

let foo = undefined || "bar";
console.log(foo); // bar

 

 만약 undefined 나 null 인 경우에는 논리연산자가 의도대로 작동하는 것을 볼 수 있으나, 만약 Falsy한 값이 온다면 프로그래머의 의도와는 반대로 작용할 가능성이 있다. 아래의 코드는 Falsy한 값이 왔을 때의 실행결과이다. 

 

let foo = 0 || 128;
console.log(foo); // 128

let bar = false || "hi";
console.log(bar); // hi

 

 이러한 상황을 해결하기 위해서 만들어진 것이 null 병합 연산자 '??'이다. 이 연산자를 사용하면 정의된 변수의 값만을 가져올 수 있다.

 

let foo = 0 ?? 128;
console.log(foo); // 0

let bar = false ?? "hi";
console.log(bar); // false