이것은 !! (not not) JavaScript의 연산자?

4594 단어 javascript
식을 부정하는 데 사용되는 Logical NOT (!) operator 을 알고 있을 것입니다. 이 기사에서 우리는 무엇인지 볼 것입니다!! (not not) 연산자와 그 용도.

진실과 거짓



not not(!!) 연산자를 이해하기 전에 JavaScript에서 참과 거짓이 무엇인지 이해해야 합니다. Truthy 값은 부울 컨텍스트에서 고려되는 값true입니다. 즉, if("John") 또는 if(1)와 같은 식이 있으면 true로 평가됩니다. 따라서 비어 있지 않은 문자열, 0이 아닌 숫자 등은 진실로 간주됩니다.

마찬가지로 falsy는 false로 평가되는 값입니다. 예는 0 , '' "" , null , undefined 등입니다.

truthy의 예



다음은 true로 평가되는 표현식입니다. 따라서 if 조건 내부의 모든 값은 참값입니다.

if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)



거짓의 예



다음 값은 JavaScript에서 거짓으로 간주됩니다.
  • 거짓
  • 0
  • -0
  • '', ""
  • 정의되지 않은
  • NaN

  • 전체 목록을 찾을 수 있습니다here.

    의 사용!! 운영자



    유효한 제품 ID가 전달될 때 제품 세부 정보를 반환하는 getProductDetails라는 함수가 있다고 가정해 보겠습니다. 잘못된 제품 ID가 전달되면 빈 문자열 또는 undefined가 반환될 수 있습니다. 따라서 응답으로 받은 제품 세부 정보를 처리하는 코드는 다음과 같습니다.

    const product = getProductDetails(123)
    
    if (product !== undefined || product !== "") {
      // Process product details
    }
    


    not not 연산자의 도움으로 다음과 같이 단축할 수 있습니다.

    const product = getProductDetails(123)
    
    if (!!product) {
      // Process product details
    }
    

    !!는 연산자가 아니라 두 개의 논리 NOT(!) 연산자입니다.
    첫 번째(오른쪽)는 피연산자(평가 중인 값)를 부정 부울로 변환하고 두 번째 ! 피연산자의 부울 표현을 얻기 위해 부울 값을 다시 부정합니다.

    즉, !"John"false로 평가되고 !falsetrue로 평가됩니다.

    잘못된 값의 경우 !0true로 평가되고 !truefalse가 됩니다.

    주목해야 할 한 가지 흥미로운 점은 !!new Boolean(false)가 거짓 값을 포함하더라도 true인 개체를 생성하기 때문에 truenew Boolean(false)라는 것입니다.

    좋은 웹페이지 즐겨찾기