Nullish coalescing assignment (??=) / 널 병합 할당
Nullish coalescing assignment(??=)는 논리적 null 할당 연산자라고도 합니다.
JavaScript에서 변수가 null 또는 undefined일 경우에만 값이 할당되도록 하는 연산자입니다.
즉, 해당 변수에 값이 없을 때만 새로운 값을 할당하고, 값이 존재하면 기존 값을 유지하는 역할을 합니다.
기본 문법을 살펴볼까요 ?
// variable : 값을 할당할 대상인 변수
// value : variable에 null 또는 undefined일 경우 할당할 값
variable ??= value;
위 문법을 보면, variable에 null 또는 undefined일 경우에, value를 variable에 할당합니다.
만약 위 문구의 조건이 옳지 않다면(nul이나 undefined가 아니라면) 아무 일도 일어나지 않고 variable은 기존 값을 유지합니다.
예제코드로 살펴볼까요?
let a = null;
a ??= 10; // a가 null이므로 10이 할당됨
console.log(a); // 10
let b = 20;
b ??= 15; // b는 null이나 undefined가 아니므로 기존 값 유지
console.log(b); // 20
기존에 사용하던 방식과 비교한다면,
if문이나 || 연산자를 사용해야 했습니다. 하지만 ??=는 null이나 undefined에만 반응하기 때문에, falsy 값인 0, "", false와는 다르게 동작한다는 것이 장점입니다.
let c = 0;
c ||= 5; // c는 0으로 falsy하므로 5가 할당됨
console.log(c); // 5
let d = 0;
d ??= 5; // d는 null이나 undefined가 아니므로 값이 유지됨
console.log(d); // 0
정리
- ??= 는 변수에 값이 없을 때만 값을 할당하고, 기존 값이 있다면 아무런 변화가 없습니다.
- Flasy 값(0, "", false)을 유지하고 싶을 때 유용하게 사용됩니다.
- 다른 할당 연산자(||=, &&=)와 비교했을 때, 좀 더 엄격하게 null과 undefined에만 반응하는 것이 특징입니다.
'JavaScript > 이론 & 문법' 카테고리의 다른 글
JavaScript / Nullish coalescing operator (??) (0) | 2024.10.21 |
---|---|
JavaScript 옵셔널 체이닝 / Optional chaining (0) | 2024.10.21 |
JavaScript 전개 구문과 구조 분해 할당 (0) | 2024.10.21 |
JavaScript / in 연산자의 사용 (0) | 2024.10.20 |
JavaScript for..in 과 for..of (iteration 문법) (0) | 2024.10.20 |