ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JS - ??와 ||의 차이 (Nullish coalescing operator)
    개발 2022. 9. 30. 07:30

     


     

    널 병합 연산자

    Nullish Coalescing Operator (널 병합 연산자) 는

    왼쪽 피연산자가 null 또는 undefined 일 때 오른쪽 피연산자를 반환하고,

    그렇지 않으면 왼쪽 피 연산잔를 반환하는 논리 연산자이다.

     

    const foo = null ?? 'default string';
    console.log(foo);
    // expected output: "default string"
    
    const baz = 0 ?? 42;
    console.log(baz);
    // expected output: 0

     

     


     

    OR 논리 연산자와 무엇이 다른가?

    얼핏보면 '널 병합 연산자' 와 'OR 논리 연산자' 는 비슷해보인다.

    하지만 널 병합 연산자가 오른쪽 피연산자를 반환하는 조건 중

    null 또는 undefined 일 때

    라는 내용을 살펴보면 차이점을 정확히 알 수 있다.

     

    OR 논리 연산자는 null 또는 undefined 뿐만 아니라 falsy 값에 해당 할 경우 오른쪽 피연산자를 반환하는 방식이다.

    자바스크립트에서 falsy 값에 해당하는 것들을 살펴보면 Boolean 문맥에서 false로 평가되는 값들을 말한다.

     

     

    따라서, OR 논리 연산자의 경우 0과 빈 문자열('') 같은 값을 Boolean 문맥에서 false로 평가함으로 오른쪽 피연산자를 리턴한다.

    위 널 병합 연산자 예제를 OR 논리 연산자와 비교해보면 더 쉽게 알 수 있다.

     

    // 널 병합 연산자 (??)
    
    const baz = 0 ?? 42;
    console.log(baz); // 0
    
    
    // OR 논리 연산자 (||)
    const baz = 0 ?? 42;
    console.log(baz); // 42

     

     

    널 병합 연산자와 OR 논리 연산자의 차이점을 이해하고, 0과 같은 falsy한 값에 대해서 엄격하게 처리해야 할 경우에는

    널 병합 연산자를 활용하는 방법이 더 정확한 개발이 될 수 있겠다.

     

     

     

     

     

    댓글

onul-hoi front-end developer limchansoo