>  기사  >  웹 프론트엔드  >  JavaScript_javascript 스킬에서 이중 느낌표(!!)의 역할 예

JavaScript_javascript 스킬에서 이중 느낌표(!!)의 역할 예

WBOY
WBOY원래의
2016-05-16 16:53:021028검색

다음과 같은 예를 자주 볼 수 있습니다. 

코드 복사 코드는 다음과 같습니다.

var a;
var b=!!a;

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

일반적으로 다음 표현식을 부울 유형 데이터(boolean)로 강제하는 데 사용됩니다. 즉, true 또는 false만 가능합니다.
자바스크립트는 약한 유형의 언어이기 때문에(변수는 고정된 데이터가 아닙니다.) 유형) 따라서 때로는
코드 복사 와 유사하게 해당 유형으로 캐스팅해야 합니다. 코드는 다음과 같습니다.

a=parseInt(“1234″)
a=”1234″-0 //숫자로 변환
b=1234 ”” //문자열로 변환
c= someObject.toString() //객체를 문자열로 변환

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

부울 변환, JavaScript 규칙 규칙은

false, undefine, null, 0, "" is false
true, 1, "somestring", [Object] is true

null 및 정의되지 않음 등입니다. 다른 암시적으로 변환된 값의 경우 ! 연산자를 사용하면 실제 결과가 생성되므로 두 개의 느낌표를 사용하는 목적은 이러한 값을 "동등한" 부울 값으로 변환하는 것입니다.
>
코드 복사 코드는 다음과 같습니다.
var foo
alert(!foo) ;// 정의되지 않은 경우 느낌표는 true를 반환합니다.
alert(!goo);//Null의 경우 느낌표도 true를 반환합니다.
var o={flag:true}; 🎜>var test =!!o.flag;//var test=o.flag||false;
alert(test)


이 예는 undiffed 및 null인 경우를 보여줍니다. 느낌표 1개를 사용하면 true가 반환되고, 느낌표 2개를 사용하면 false가 반환됩니다. 따라서 느낌표 2개의 역할은 변수 값이 명시적으로 설정된 경우(null/Unified/0/"" 등이 아님) result 변수의 실제 값을 기준으로 반환됩니다. 설정되지 않은 경우 결과는 false입니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.