추가된지 얼마 안된
??
연산자이다.
??
연산자는 null
이나 undefined
가 아닌 값이 있는 변수를 찾을 때 사용할 수 있다.
const hi = '안녕하세요' ?? '안녕';
console.log(hi);
/* 실행 결과 */
안녕하세요
첫번째로 hi에 '안녕하세요'
?? '안녕'
을 작성해보았다.
실행 결과로는 안녕하세요
가 출력되었다.
const hi = null ?? '안녕';
console.log(hi);
/* 실행 결과 */
안녕
두번째는 첫번째 값을 null
로 작성해보았다.
이번에는 안녕
이 출력되었다.
??
앞에 있는 값이 null이나 undefined 인 경우에는 ??
의 뒤에 있는 값이 반환된다.
널 병합 연산자(??
)의 경우 null, undefined 일 때 ??
연산자 뒤의 값이 반환된다.
논리 연산자 (||
)는 falsy 값인 경우 오른쪽 피연산자가 반환된다.
const hi = 0 ?? '안녕';
console.log(hi);
const hi2 = 0 || '하잉!';
console.log(hi2);
/* 출력 결과 */
0
하잉!
널 병합 연산자는 undefined, null 일 때만 오른쪽 피연산자를 반환하기 때문에 안녕
이 아닌 0
이 출력되었다.
or 논리 연산자는 undefined, null을 포함하여 왼쪽 피연산자가 falsy값인 경우 오른쪽 피연산자를 반환한다.
그렇기 때문에 왼쪽 피연산자에 undefined, null을 제외한 falsy 값을 다룬다면 ||
와 ??
는 출력결과에서 차이가 있다.