본문 바로가기
개발이야기/Javascript

값을 할당하는 Null 병합 할당 연산자 Nullish coalescing assignment (??=)

by adrian7 2023. 2. 13.

Javascript 를 코딩할 때 값 체크는 필수로 해야 한다.

null, undefined 발생시 치명적인 오류로 나타나기 때문인데

이게 은근히 귀찮다.

 

if(변수 === undefined || 변수 === null) {
	변수 = 할당값;
}

 

변수나 object 가 한두개가 아니기 때문에 항상 신경 써주어야 한다.

 

??= 연산자는 2020-08-25 일에 릴리즈된 크롬 85버전 이상이면 동작한다. 

(구형 브라우져를 만족하려면 구문 에러가 발생한다. 어지간한 브라우저이면 다 동작한다.)

 

x ??= y 로 표현했을때 아래 내용과 동일하다.

x ?? (x = y);

 

값 체크 없이 할당하는 예 :

let a = {duration: 50};

a.duration ??= 10;
console.log(a.duration);
// Expected output: 50

a.speed ??= 25;
console.log(a.speed);
// Expected output: 25

 

Javascript 이 Null 병합 할당 연산자로 기본값고 할당값을 편하게 쓸 수 있다.

function config(options) {
    options.duration ??= 100;
    options.speed ??= 25;
    return options;
}
  
a = config({ duration: 125 }); 
console.log(a);  // { duration: 125, speed: 25 }
b = config({}); 
console.log(b);  // { duration: 100, speed: 25 }

    

Null  병합 연산자 ?? 요놈과는 다르니 구분해서 써야 된다.