js의 암시적 변환

高洛峰
풀어 주다: 2016-10-13 11:05:59
원래의
1315명이 탐색했습니다.

js에서 서로 다른 데이터 유형 간의 비교 및 ​​변환 규칙은 다음과 같습니다.

1. 객체와 불리언 값의 비교 ​​

객체와 불리언 값을 비교할 때, 객체는 먼저 문자로 변환한 다음 문자열을 숫자로 변환하고, 불리언 값을 바로 숫자로 변환

[] == true;  //false  []转换为字符串'',然后转换为数字0,true转换为数字0,所以为false
로그인 후 복사

2. 객체와 문자열의 비교

객체와 문자열을 비교할 때, 그런 다음 객체를 문자열로 변환합니다.

[1,2,3] == '1,2,3' // true  [1,2,3]转化为'1,2,3',然后和'1,2,3', so结果为true;
로그인 후 복사

3. 사물과 숫자의 비교

객체와 숫자를 비교할 때는 먼저 사물을 문자열로 변환한 다음 숫자로 변환한 후 숫자와 비교합니다.

[1] == 1;  // true  `对象先转换为字符串再转换为数字,二者再比较 [1] => '1' => 1 所以结果为true
로그인 후 복사

4. 문자열과 숫자의 비교

문자열과 숫자를 비교할 때는 문자열을 숫자로 변환한 후 둘을 비교합니다.

'1' == 1 // true
로그인 후 복사

5. 문자열과 불리언 값의 비교 ​​

문자열과 불리언 값을 비교할 때에는 둘 다 수치로 변환한 후 비교한다.

'1' == true; // true
로그인 후 복사

6. 불리언 값과 숫자의 비교

불리언 값과 숫자를 비교할 때는 불리언을 숫자로 변환하여 둘을 비교한다.

true == 1 // true
로그인 후 복사

JS를 처음 접하는 많은 아이들은 변환 규칙이 너무 많아서 혼란스러워합니다. 사실 규칙은 매우 간단합니다. 이 그림을 적어 보세요. 스킬)

js의 암시적 변환

그림과 같이 두 타입을 비교할 때, 같은 타입이 아닐 경우 그림과 같이 해당 타입 변환이 수행됩니다. 예를 들어 객체와 부울을 비교하면 객체 => 문자열 => 숫자 부울 => 숫자가 됩니다.
이 외에도 '특별한 관리'가 필요한 사항에 대해 살펴보겠습니다.

흥미로운 질문을 보겠습니다

[] == false;
![] == false;
로그인 후 복사

이 두 가지의 결과는 첫 번째가 true이고, object => string => value 1, false는 숫자 1로 변환됩니다. 이것이 사실이면 문제 없습니다.
두 번째 앞에 !가 있으면 바로 불리언 값으로 변환한 후, 불리언 값으로 변환하면 빈 문자열(' '), NaN, 0, null, undef 이들 모두는 true를 반환하므로! [] 이 [] => true는 false로 반전되므로 [] == false가 true입니다.

다음과 같이 기억해야 할 사항이 있습니다.

undefined == null //true undefined和null 比较返回true,二者和其他值比较返回falseNumber(null) //0
로그인 후 복사


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