!! 일반적으로 부울 데이터 (부울)에 다음 표현식을 시전하는 데 사용됩니다. 즉, 사실이거나 거짓일 수 있습니다.
나는 종종 다음과 같은 예를 본다 :
코드 사본은 다음과 같습니다.
var a;
var b = !! a;
A는 기본적으로 정의되지 않습니다. ! a는 참입니다. !! a는 거짓이므로 b의 값은 거짓, 더 이상 정의되지 않은 다른 값이나 다른 값은 주로 후속 판단을위한 편의를 제공합니다.
!! 일반적으로 부울 데이터 (부울)에 다음 표현식을 시전하는 데 사용됩니다. 즉, 사실이거나 거짓일 수 있습니다.
JavaScript는 약한 언어 (변수는 고정 데이터 유형이 없음)이므로 때로는 다음과 같은 해당 유형으로 캐스트해야합니다.
a = parseint ( "1234") a = "1234"-0 // 숫자 b = 1234+"로 변환하십시오.
그중 첫 번째와 네 번째는 명시적인 전환이며 2와 3은 암시 적 전환입니다.
부울 전환, JavaScript 컨벤션 규칙입니다
거짓, 정의되지 않은, null, 0, ""는 거짓입니다
True, 1, "Somestring", [Object]는 참입니다
NULL 및 UNDEFINED와 같은 다른 암시 적으로 변환 된 값의 경우! 연산자는 실제 결과를 생성하므로 두 가지 느낌표를 사용하는 목적은 이러한 값을 "동등한"부울 값으로 변환하는 것입니다.
다시 한번 봅시다 :
var foo; Alert (! foo); // undifined, 느낌표가 참으로 반환됩니다. Alert (! goo); // null에서 느낌표가 참으로 반환됩니다. var o = {flag : true}; var test = !! O.flag; // var test = o.flag || false와 동일합니다. 경고 (테스트);이 예제는 undifined and null 일 때, 하나의 느낌표의 반환이 사실이며, 두 느낌표 지점의 반환은 거짓이므로, 두 느낌표의 기능은 변수의 값이 명확하게 설정되면 (비 널/미분/0/"및"동등한 값)가 변수의 실제 값을 기준으로 결과가 반환된다는 것입니다. 설정되지 않으면 결과가 반환됩니다.