!! 일반적으로 다음 표현식을 부울 유형 데이터(boolean)로 강제하는 데 사용됩니다. 즉, true 또는 false만 가능합니다.
다음과 같은 예를 자주 봅니다.
!! 일반적으로 다음 표현식을 부울 유형 데이터(boolean)로 강제하는 데 사용됩니다. 즉, true 또는 false만 가능합니다.
JavaScript는 약한 유형의 언어이기 때문에(변수에는 고정된 데이터 유형이 없음) 때로는 다음과 같이 해당 유형으로 변환해야 합니다.
a=parseInt(“1234″) a=”1234″-0 //转换为数字 b=1234+”” //转换为字符串 c=someObject.toString() //将对象转换为字符串
유형 1과 4는 명시적 변환이고 유형 2와 3은 암시적 변환입니다
부울 변환, JavaScript 규칙은
false, 정의되지 않음, null, 0, ""는 false입니다
true, 1, "somestring", [Object]가 true
null, 정의되지 않음 및 기타 암시적으로 변환된 값의 경우 ! 연산자를 사용하면 실제 결과가 생성되므로 두 개의 느낌표를 사용하는 목적은 이러한 값을 "동등한" 부울 값으로 변환하는 것입니다.
다시 살펴보겠습니다.
var foo; alert(!foo);//undifined情况下,一个感叹号返回的是true; alert(!goo);//null情况下,一个感叹号返回的也是true; var o={flag:true}; var test=!!o.flag;//等效于var test=o.flag||false; alert(test);