>  기사  >  웹 프론트엔드  >  JS의 !! 기호 문제에 대한 자세한 해석

JS의 !! 기호 문제에 대한 자세한 해석

亚连
亚连원래의
2018-06-22 13:51:082091검색

!! 일반적으로 다음 표현식을 부울 유형 데이터(boolean)로 강제하는 데 사용됩니다. 즉, true 또는 false만 가능합니다. 이번 글을 통해 소개해드린 JS에서 살펴보겠습니다. 필요하신 분들은 참고하시면 됩니다

!! 일반적으로 다음과 같은 표현식을 부울형 데이터(boolean)로 강제로 사용합니다. 참일 수도 있고 거짓일 수도 있습니다.

var a;
var b=!!a;

a기본값은 정의되지 않았습니다. !a는 참이고, !!a는 거짓입니다. 따라서 b의 값은 정의되지 않은 값이나 다른 값이 아닌 거짓입니다. 이는 주로 후속 판단을 용이하게 하기 위한 것입니다.

JavaScript는 약한 유형의 언어이기 때문에(변수에는 고정된 데이터 유형이 없음) 때로는 다음과 같이 해당 유형으로 강제 변환해야 합니다.

a=parseInt(“1234″)
a=”1234″-0 //转换为数字
b=1234+”” //转换为字符串
c=someObject.toString() //将对象转换为字符串

첫 번째와 네 번째 유형은 명시적 변환이고 두 번째와 세 번째 유형은 명시적 변환입니다. 유형은 암시적 변환

부울 변환의 경우 JavaScript 규칙은

false, undefinded, null, 0, "" is 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);

이 예는 undified 및 null일 때 느낌표 1개를 사용하면 true를 반환하고 느낌표 2개를 사용하면 false를 반환하므로 느낌표 2개의 역할은 변수 값이 명시적으로 설정된 경우( Non-null/undified/ 0/"" 및 기타 값), 변수의 실제 값을 기반으로 결과가 반환됩니다. 설정되지 않은 경우 결과는 false를 반환합니다.

"!!" JS

var o={flag:true}; 
 var test=!!o.flag;//等效于var test=o.flag||false; alert(test);

null 및 정의되지 않음에 ! 연산자를 사용하면 실제 결과가 생성되므로

두 개의 느낌표를 사용하는 목적은

명시적으로 설정된 경우입니다. o의 플래그 값(null/정의되지 않음/0""/etc.)은 당연히 o.flag와 동일한 값을 사용합니다.

설정되지 않은 경우 테스트는 기본적으로 null 또는 정의되지 않은 false로 설정됩니다. .

위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 도움이 되길 바랍니다.

관련 기사:

ES6을 사용하여 싱글톤 모드를 구현하는 방법

node.js를 사용하여 하위 프로세스를 만드는 방법(자세한 튜토리얼)

슬라이더를 사용하여 WeChat 애플릿에서 데이터 값을 설정하는 방법

위챗 미니 프로그램에서 팝업 하단 메뉴 구현하는 방법

위 내용은 JS의 !! 기호 문제에 대한 자세한 해석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.