다른 사람의 js 코드를 보다가 이런 사용법을 발견했습니다.
if (!!item.value) { param[item.name] = item.value; }
저는 js를 오랫동안 공부하지 않아서 빨리 추가했는데 특히 흥미로운 것을 발견했습니다.
추천 학습 튜토리얼: javascript 비디오 튜토리얼
js에서 !의 사용법은 비교적 유연하며 논리 연산 외에도 자주 사용됩니다! 유형 판단에 사용될 수 있습니다! 그리고 위의 개체는 부울 값
1,! 변수는 부울 유형으로 변환될 수 있습니다. null, 정의되지 않은 문자열 및 빈 문자열의 부정은 모두 true이고 나머지는 false입니다.
!null=true !undefined=true !''=true !100=false !'abc'=false
2,! ! 첫 번째 단계(변수) 후에 논리적 부정 연산이 수행되는 경우가 많습니다. JS에서는 다음과 같은 비대한 코드를 작성합니다.
변수 a가 비어 있지 않은지, 정의되지 않았는지 판단합니다. 빈 문자열 그래야만 메서드 본문의 내용을 실행할 수 있습니다.
var a; if(a!=null&&typeof(a)!=undefined&&a!=''){ //a有内容才执行的代码 }
사실, 위와 동일한 효과를 얻으려면
if(!!a){ //a有内容才执行的代码... }
라는 판단 표현만 작성하면 됩니다. a가 실제 의미를 갖는 변수인 경우에만 메소드가 실행됩니다. 그렇지 않으면 null, undefine 및 '' "빈 문자열 변수는 다음 코드를 실행하지 않습니다.
"로 요약할 수 있습니다. "는 논리적 AND 연산이며 모든 변수와 논리적으로 AND하여 부울 값으로 변환할 수 있습니다. "!!"는 논리적 AND의 부정 연산입니다. 특히 후자의 코드는 유형을 판단할 때 간단하고 효율적이므로 필요가 없습니다. null, 정의되지 않은 문자열 및 빈 문자열을 확인하는 중복 코드입니다.
그래서 처음의 코드에서 !value는 먼저 값을 반전된 부울 값으로 변환한 다음 얻은 부울 값을 다시 반전하여 값이 값은 null, 정의되지 않음 및 빈 문자열의 경우 if 본문의 코드가 실행되지 않습니다.
???또 다른 흥미로운 사실이 발견되었습니다???:
(!(~+[])+ {}) [--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~ +[] ]
위 js의 결과를 출력해 보세요... ?
?...빠져가세요...
위 내용은 js의 차이점과 사용법을 알아보세요!!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!