간단한 예를 사용하여 설명하겠습니다.
var o={ 플래그:true};
var test=!!o.flag;//var test=o.flag||false;
alert(test)
>null 및 정의되지 않음에 ! 연산자를 사용하면 실제 결과가 생성되므로 두 개의 느낌표를 사용하는 목적은 o의 플래그 값이 명시적으로 설정된 경우(null/정의되지 않음/0""/등이 아님)입니다. ), 자연 테스트입니다. 설정되지 않은 경우 o.flag와 동일한 값을 사용하며, 테스트는 기본적으로 null 또는 정의되지 않은 대신 false로 설정됩니다.
jQuery의 전형적인 예는 다음과 같습니다. (jQuery 1.7.0.js: Line 748)
grep: function(elems, callback, inv) {
var ret = [], retVal
inv = !!inv; / 배열을 살펴보고
// 유효성 검사 함수를 전달하는 항목만 저장합니다
for ( var i = 0, length = elems.length; i < length; i ) {
retVal = ! ! 콜백( elems[ i ], i );
if ( inv !== retVal ) {
ret.push( elems[ i ] )
return ret
}
grep 함수를 사용할 때 세 번째 매개변수가 주어지고 null/undefine/0""/이 아니면 inv는 true이고, 그렇지 않으면 false입니다. 이것의 목적은 후속 판단을 용이하게 하기 위해 inv 및 retVal의 값을 다른 값이 아닌 true/false에서만 가져올 수 있도록 하는 것입니다.