JavaScript_javascript 스킬에서 이중 느낌표의 역할 소개!!

WBOY
풀어 주다: 2016-05-16 16:35:49
원래의
1174명이 탐색했습니다.

!! 일반적으로 다음 표현식을 부울 유형 데이터(boolean)로 강제하는 데 사용됩니다. 즉, true 또는 false만 가능합니다.

다음과 같은 예를 자주 봅니다.

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

var a;
var b=!!a;

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

!! 일반적으로 다음 표현식을 부울 유형 데이터(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);
로그인 후 복사
이 예는 undiffed와 null을 사용할 때 느낌표 1개를 사용하면 true를 반환하고 느낌표 2개를 사용하면 false를 반환하므로 느낌표 2개의 역할은 변수의 값을 명시적으로 설정하는 것입니다( Non -null/undified/0/"" 및 기타 값), 변수의 실제 값을 기반으로 결과가 반환됩니다. 설정되지 않은 경우 결과는 false를 반환합니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿