let username;
let userNickName = "Winter";
let displayName = username ?? userNickName;
이렇게 있는 경우 username은 변수 선언만 되어 있고 할당되지 않아서 undefined 입니다.
그러면 displayName은 undefined ?? userNickName; 이란 뜻인데
결국 undefined ?? "Winter" 이고
undefined는 값이 없다는 뜻이기 때문에 Winter가 됩니다.
그러면
let userGraphic = "RTX";
let userGraphicName = 5090;
let graphic = userGraphic ?? userGraphicName;
이렇게 되는 경우에는 RTX가 나옵니다.
userGraphic과 userGraphicName에 내용이 병합해서 앞의 내용만 출력됩니다.
값이 있으면 그걸 사용하고 값이 없으면 값을 변경하고 싶을 때
null 병합 할당 연산자를 사용할 수 있습니다.
config = {
min: 10,
}
if (config.min === undefined || config.min === null) {
config.min = 20;
}
if (config.max === undefined || config.max === null) {
config.max = 100;
}
config;
위의 코드를 줄일 수 있습니다.
config = {
min: 10,
}
config.min ??= 10;
config.max ??= 100;
config;