본문 바로가기
javascript

Nullish 병합 연산자(?)

by it-square 2022. 1. 11.
반응형

Nullish 병합 연산자(??)는 왼쪽(첫 번째 인수)이 null이거나 정의되지 않은 경우에만 연산자(두 번째 인수)의 오른쪽을 반환하는 논리 연산자이다. 다른 모든 경우에는 첫 번째 인수를 반환합니다.

좀 더 명확히 하기 위해 예를 보겠습니다.

 

위의 예에서 보셨듯이 정의되지 않은 연산자가 연산자 왼쪽에 있기 때문에 Hello가 반환됩니다. null이 정의되지 않은 위치였다면 결과는 동일했을 것이다. 그리고 두 번째 예에서 첫 번째 인수에 null이 아니거나 정의되지 않은 것이 있다면 연산자는 두 번째 인수를 확인하지 않고 바로 첫 번째 값을 출력한다.

ECMAScript 2020에 추가된 이유

그래서 우리가 변수에 기본값을 부여하고자 할 때마다 OR ( || ) 논리 연산자를 사용했다. 그러나 OR 연산자를 사용하는 데 몇 가지 신뢰 문제가 있었습니다 . 따라서 || 연산자가 작동하는 방법은 첫 번째 트루티 값을 반환하고 false,0," 및 null/undefined를 구별하지 않는 것이다. 이 모든 것들은 OR 연산자에 대한 거짓 값들이므로, 첫 번째 인수로 이것들 중 하나라도 발견되면 결과적으로 두 번째 인수를 얻게 되고, 이것은 OR 연산자를 덜 신뢰할 수 있게 만든다.

OR 연산자를 사용할 때의 이러한 문제 때문에 첫 번째 정의된 값을 반환하는 Nullish 병합 연산자가 도입되었다.

 

위의 예에서 || 연산자와 ? 연산자의 차이를 명확히 알 수 있습니다. 측정 시스템 및 둘 다 0을 다루는 방법.

우선 순위

?? MDN Docs에 지정된 우선 순위 테이블에서 연산자가 OR 연산자보다 1비트 낮습니다. 즉, = 및 삼항 연산자 앞과 + 및 *와 같은 연산자 뒤에 평가됩니다.

그렇다면 ?를 사용할 경우 괄호를 사용하는 것이 더 낫습니까? 다른 연산자와의 표현에서.

 

괄호를 사용하지 않으면 표현 결과가 틀릴 수 있습니다.

? 사용? 와 함께

우리가 결합하려고 하면? 을 가지고

그것이 모두 널리쉬 병합에 대한 것이었고, 그것들이 무엇이고 언제 사용되는지 이해하셨기를 바랍니다. 당신의 의견을 듣고 싶습니다.

 

저에 대해 더 알고 싶으시면 트위터에 접속해주세요.

댓글