Nullish 병합 연산자(??)는 왼쪽(첫 번째 인수)이 null이거나 정의되지 않은 경우에만 연산자(두 번째 인수)의 오른쪽을 반환하는 논리 연산자이다. 다른 모든 경우에는 첫 번째 인수를 반환합니다.
좀 더 명확히 하기 위해 예를 보겠습니다.
위의 예에서 보셨듯이 정의되지 않은 연산자가 연산자 왼쪽에 있기 때문에 Hello가 반환됩니다. null이 정의되지 않은 위치였다면 결과는 동일했을 것이다. 그리고 두 번째 예에서 첫 번째 인수에 null이 아니거나 정의되지 않은 것이 있다면 연산자는 두 번째 인수를 확인하지 않고 바로 첫 번째 값을 출력한다.
ECMAScript 2020에 추가된 이유
그래서 우리가 변수에 기본값을 부여하고자 할 때마다 OR ( || ) 논리 연산자를 사용했다. 그러나 OR 연산자를 사용하는 데 몇 가지 신뢰 문제가 있었습니다 . 따라서 || 연산자가 작동하는 방법은 첫 번째 트루티 값을 반환하고 false,0," 및 null/undefined를 구별하지 않는 것이다. 이 모든 것들은 OR 연산자에 대한 거짓 값들이므로, 첫 번째 인수로 이것들 중 하나라도 발견되면 결과적으로 두 번째 인수를 얻게 되고, 이것은 OR 연산자를 덜 신뢰할 수 있게 만든다.
OR 연산자를 사용할 때의 이러한 문제 때문에 첫 번째 정의된 값을 반환하는 Nullish 병합 연산자가 도입되었다.
위의 예에서 || 연산자와 ? 연산자의 차이를 명확히 알 수 있습니다. 측정 시스템 및 둘 다 0을 다루는 방법.
우선 순위
?? MDN Docs에 지정된 우선 순위 테이블에서 연산자가 OR 연산자보다 1비트 낮습니다. 즉, = 및 삼항 연산자 앞과 + 및 *와 같은 연산자 뒤에 평가됩니다.
그렇다면 ?를 사용할 경우 괄호를 사용하는 것이 더 낫습니까? 다른 연산자와의 표현에서.
괄호를 사용하지 않으면 표현 결과가 틀릴 수 있습니다.
? 사용? 와 함께
우리가 결합하려고 하면? 을 가지고
그것이 모두 널리쉬 병합에 대한 것이었고, 그것들이 무엇이고 언제 사용되는지 이해하셨기를 바랍니다. 당신의 의견을 듣고 싶습니다.
저에 대해 더 알고 싶으시면 트위터에 접속해주세요.
'javascript' 카테고리의 다른 글
JavaScript의 스택 데이터 구조 이해—JavaScript는 이를 어떻게 사용합니까? (0) | 2022.01.11 |
---|---|
플랫아이언 스쿨 소프트웨어 엔지니어링 1단계 완료! — 내 프로젝트 (1) | 2022.01.11 |
Javascript에서 Promise 개체의 기본 제공 메서드 (0) | 2022.01.11 |
用javascript學習演算法和資料結構(5) (0) | 2022.01.11 |
Javascript의 O.O. (0) | 2022.01.11 |
댓글