javascript

기초 12. nullish 병합 연산자 '??'

케케_ 2024. 9. 3. 23:53

nullish 병합 연산자(nullish coalescing operator) ??

: 변수 중 값이 '확정된' 변수를 찾을 수 있음

 

a ?? b 

  • a가 null도 아니고 undefined도 아니면 a
  • 그 외의 경우는 b

   =         x = (a !== null && a !== undefined) ? a : b;

    --> 코드 길어짐

 

  • 세 변수 중 실제 값이 있는 변수 출력, 모두 값이 없으면 '익명 사용자' 출력  --> ??를 사용해 세상 간편~~~~ 
    • 가장 먼저 값이 있는 변수를 출력함
let firstName = null;
let lastName = null;
let nickName = "바이올렛";

// null이나 undefined가 아닌 첫 번째 피연산자
alert(firstName ?? lastName ?? nickName ?? "익명의 사용자"); // 바이올렛

 


'??' 와 '||'의 차이

  • '||' 은 첫번째 truthy 값 반환
  • '??'은 첫번쨰 정의된(defined) 값을 반환

--> null, undefinde, 숫자 0 을 구분해야할 때 위의 차이가 중요!

 

let height = 0;

alert(height || 100); // 100
alert(height ?? 100); // 0

 


연산자 우선순위

?? 의 우선순위 = 5 --> = 와 ? 보다는 먼저! / 대부분의 연산자보다는 나중!

 

()사용!

let height = null;
let width = null;

// 괄호를 추가!
let area = (height ?? 100) * (width ?? 50);

alert(area); // 5000

 

- && 와 || 과는 함께 사용 못함. --> 대신 괄호 () 사용은 ㄱㅊ

let x = (1 && 2) ?? 3; // 제대로 동작합니다.

alert(x); // 2

 

 

 

'javascript' 카테고리의 다른 글

기본 14. switch문  (0) 2024.09.05
기초 13. while과 for 반복문  (0) 2024.09.04
기초 11. 논리 연산자  (0) 2024.09.02
기초 10. if문과 조건부연산자 '?'  (0) 2024.09.02
기본 9. 비교 연산자  (0) 2024.08.31