JavaScript / Nullish coalescing assignment (??=)

2024. 10. 21. 03:10·JavaScript/이론 & 문법

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
'JavaScript/이론 & 문법' 카테고리의 다른 글
  • JavaScript / Nullish coalescing operator (??)
  • JavaScript 옵셔널 체이닝 / Optional chaining
  • JavaScript 전개 구문과 구조 분해 할당
  • JavaScript / in 연산자의 사용
lucainr
lucainr
프로그래밍 기술 및 관심사 공유, 개발자의 성장 목적으로 블로그를 운영하고 있습니다.
  • lucainr
    Luca의 개발 Blog
    lucainr

  • 전체
    오늘
    어제
    • 분류 전체보기
      • 크래프톤 정글
      • 공통
        • Network
        • Security
      • Github
        • 환경설정
        • 이해하기
      • Java
        • Spring Boot
        • 이론 & 문법
        • MyBatis
        • 알고리즘 & 자료구조
        • 에러 노트(Error Note)
        • 웹 어플리케이션(Web Application)
      • DB
        • Oracle DB
        • MySQL & MariaDB
      • JavaScript
        • 이해하기
        • 이론 & 문법
      • HTML & CSS
      • Python
        • 이론 & 문법
        • 에러 노트(Error Note)
      • AWS
      • Linux
      • Docker
      • Side Project
      • 개발 Tip?
        • MacBook(Mac OS)
        • IntelliJ
      • 취미 생활
        • 독서
        • 인사말
        • 나의 생각
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 최근 글

  • 태그

    undefined
    자바스크립트
    ??
    IN연산자
    정글10기
    optionalchaining
    배열
    크래프톤정글
    null
    알고리즘
    Web
    구조분해할당
    javascript
    for
    크래프톤정글10기
    크래프톤
    Python
    Array
    전개구문
    개발자
    옵셔널체이닝
    week01
    파이썬
    정글
    정렬
    인사말
  • hELLO· Designed By정상우.v4.10.0
lucainr
JavaScript / Nullish coalescing assignment (??=)
상단으로

티스토리툴바