본문 바로가기

JavaScript/Modern JavaScript

[JavaScript] null 병합 연산자

[null 병합 연산자]

 

물음표 두개(??) 를 사용하여 null 혹은 undefined 값을 가려내는 연산자로, 연산자 왼편의 값이 null 이나 undefined 면, 연산자 오른쪽 값이 리턴되고, 연산자 왼편의 값이 null 이나 undefined 가 아니라면 왼편의 값이 리턴.

const example1 = null ?? 'I'; // I
const example2 = undefined ?? 'love'; // love
const example3 = 'Codeit' ?? 'JavaScript'; // Codeit

console.log(example1, example2, example3); // I love Codeit

 

이는 or 연산자와 비슷해보이지만,

const title1 = false || 'codeit';
const title2 = false ?? 'codeit';

console.log(title1); // codeit 왼편의 값이 falsy 인지 확인
console.log(title2); // false 왼편의 값이 null 혹은 undefined 인지 확인

const width1 = 0 || 150;
const width2 = 0 ?? 150;

console.log(width1); // 150
console.log(width2); // 0

OR 연산자는 왼편의 값이 falsy값이면 오른편 값을 리턴, null 연산자는 null이나 undefined 인지 확인한 후 아니면 왼편값 리턴하므로

결과가 다르게 나온다.