Nullish → null or undefined
||는 첫 번째 truthy값을 반환
??는 첫 번째 정의된(defined)값을 반환
??는 0이 할당될 수 있는 변수 사용해 기능개발 시 적합
let height =0;
alert( height || 100 ); //100
alert( height ?? 100 ); // 0
안정성관련 이슈때문에 ??는 &&나 ||와 함께 사용하지 못한다. 제약을 피하려면 괄호를 사용해야한다
// SyntaxError: Unexpected token '??'
let x = 1 && 2 ?? 3;
// 제대로 동작한다
let x = (1 && 2) ?? 3;
coalescing: 큰 덩어리로 합치다.
널 병합 할당 연산자 ( ??= ) 는 논리적 널 할당 연산자라고도 하며 오른쪽 피연산자만 평가하고 왼쪽 피연산자가 널인 경우 (null 또는 undefined)왼쪽에 할당
const a = {duration: 50}
a.speed ?? = 25;
console.log(a.speed);
// Expected output: 25
a.duration ??=10;
console.log(a.duration);
// Expected output: 50