이것은 !! (not not) JavaScript의 연산자?
4594 단어 javascript
진실과 거짓
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에서 거짓으로 간주됩니다.
전체 목록을 찾을 수 있습니다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
로 평가되고 !false
는 true
로 평가됩니다.잘못된 값의 경우
!0
는 true
로 평가되고 !true
는 false
가 됩니다.주목해야 할 한 가지 흥미로운 점은
!!new Boolean(false)
가 거짓 값을 포함하더라도 true인 개체를 생성하기 때문에 true
가 new Boolean(false)
라는 것입니다.
Reference
이 문제에 관하여(이것은 !! (not not) JavaScript의 연산자?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/collegewap/what-is-the-not-not-operator-in-javascript-27c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)