less than 1 minute read

’??’

짧은 문법으로 여러 피연산자 중 그 값이 확정된 변수 찾기 가능

  • a ?? b 의 평가 결과** a 가 null, undefined 아니면 a 그 외의 경우 b

  • ’??’ 없이 할 경우

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

’??’ 와 ‘||’ 의 차이

유사해 보이지만 실제로 다름

  •   ’ 는 첫번째 truthy 한 값 반환
  • ’??’ 는 첫번째 정의된(null,undefined가 아닌) 값 반환

숫자 0 을 다룰 때 중요한 역할.

    let height = 0
    alert(height || 100); // 100
    alert(height ?? 100); // 0
0이 할당될 수 있는 변수 사용할 땐 ‘   ‘보다 ’??’이 적합

연산자 우선순위

5로 낮음 복잡한 표현식 안에선 괄호 추가 지향

안정성 이유

JS 언어 규정에서 제약 ‘??’ 은 ‘&&’ 나 ‘||’ 과 함께 사용하지 불가 ‘||’ 을 ‘??’ 으로 바꾸기 시작하며 만드는 실수 방지하기위해 명세서에 제약 추가됨 제약 피할 시 괄호 사용

요약

  • ’??’ 은 짧은 문법으로 확정된 변수 찾을 때 유용

  •   ’ 과 유사해 보이지만 null, undefined 를 다루는데 있어서 다르다 특히 0 다룰 때 주의.
  • 연산자 우선순위에서 매우 낮으므로 괄호와 함께 사용 지향

  • JS 언어 규정에서 다른 논리 연산자와 함께 쓰는 건 제약됨

  • 제약 피할 시 괄호 사용

출처 : https://ko.javascript.info/nullish-coalescing-operator

Categories: ,

Updated: