Javascript에서 Nullish Coalescing(또는 ??)이란 무엇입니까?

Javascript에서 null 병합 연산자 또는 ?? 연산자는 왼쪽이 null 또는 undefined 일 때마다 오른쪽을 반환하는 데 사용됩니다. 조금 더 잘 이해하기 위해 몇 가지 예를 살펴보겠습니다.

// Is set to 0
let x = 0 ?? "hello";

// Is set to goodbye
let y = undefined ?? "goodbye";

// Is set to hello
let z = null ?? "hello";

// Is set to false
let a = false ?? "goodbye";


null 병합 연산자는 무언가가 null 또는 undefined 로 반환될 수 있는 상황에서 유용하며 코드를 강화하는 데 도움이 됩니다. 예를 들어, 일부 상황에서 정의되지 않은 값을 반환하는 함수는 기본값과 함께 제공될 수 있습니다.

let myFunction = (a) => {
    if(a >= 5) {
        return "hello world";
    }
}

// Will return "goodbye world", since `myFunction(4)` returns undefined.
let runFunction = myFunction(4) ?? "goodbye world";


논리 OR 연산자의 차이점



과거에는 일반적으로 논리적 OR(||) 연산자를 사용하여 Javascript에서 기본값을 설정했습니다. 왼쪽의 첫 번째 값이 특정 기준을 충족하지 않는 경우 값을 설정한다는 점에서 동일한 종류의 기능이 있습니다. 그러나 || 연산자는 왼쪽 값이 거짓이면 오른쪽 값을 반환하고 아래 목록과 같이 거짓 값이 많이 있습니다.

잘못된 값


  • false
  • 0 또는 -0 또는 0n
  • 임의의 빈 문자열, 즉 ""
  • null
  • undefined
  • NaN

  • 따라서 || 연산자를 사용하면 함수가 0 값을 반환하고 실제로 0 값을 사용하고 싶었지만 0가 거짓이기 때문에 사용할 수 없다는 의미입니다. null 병합 연산자( ?? )에서 0는 값이 null 또는 undefined인 경우에만 트리거되므로 유효한 값입니다.

    // Is set to 0
    let x = 0 ?? 5;
    
    // Is set to 5
    let y = 0 || 5;
    


    마찬가지로, 문자열이 비어 있으면 || 연산자는 기본적으로 오른쪽이 됩니다. 이는 항상 원하는 동작이 아닙니다. ?? 연산자를 사용하면 다음을 피할 수 있습니다.

    // Is set to ""
    let x = "" ?? "default text";
    
    // Is set to "default text"
    let x = "" || "default text";
    


    null 병합 연산자 연결



    아래와 같이 null 병합 연산자를 연결하는 것도 가능합니다.

    // Is set to "default text"
    let x = null ?? undefined ?? "default text";
    


    그러나 다음과 같이 괄호를 사용하지 않는 한 논리|| 연산자와 연결할 수 없습니다.

    // Errors out:
    let x = 0 || undefined ?? "default text";
    
    // Returns "default text";
    let y = (0 || undefined) ?? "default text";
    

    좋은 웹페이지 즐겨찾기