JavaScript에는 "Falsy" value들이 있다. 예를 들면 null, undefined 뿐만 아니라 0, False, ""(빈문자열) 등이 있다. 그리고 혹시라도 Falsy한 값들이 나오면 이 값을 대체하기 위해서 OR 연산자 (||
)를 사용해서 기본값 설정을 해준다.
const inp1 = "";
const result = inp1 || "Default Value";
console.log(result);
/*console
Default Value
*/
하지만 ""
, 0
, False
들을 Falsy한 value가 아닌 실제 값으로 사용하고 싶다면 어떻게 해야할까? TypeScript에서는 Null 병합
이라는 기능을 제공한다. 이는 undefined
, null
값만 falsy value로 판별하고 이외 값들은 실제 값으로 판별한다.
Null 병합 연산자를 사용하는 위치는 ||
를 사용하는 위치와 동일하지만 기호를 ??
로 바꾼다는 차이점만 있다.
const inp1 = false;
const data = inp1 ?? "Default Value";
console.log(data);
/*console
false
*/
false를 value로 한 후 Null 병합 연산자를 사용하니 false를 그대로 반환하는것을 볼 수 있다. 반대로 inp1을 undefined 혹은 null로 변경하면, 예상했듯이 "Default Value"를 반환하는것을 볼 수 있다.
const inp1 = undefined;
const data = inp1 ?? "Default Value";
console.log(data);
/*console
false
*/