간단히 말해서 : == 유형을 먼저 변환 한 다음 비교하십시오. === 유형을 먼저 판단하십시오. 같은 유형이 아닌 경우 직접 거짓입니다.
===는 비교의 양면이 절대적으로 동일해야한다는 것을 의미합니다.
경고 (0 == ""); // truealert (0 == false); // truealert ( ""== false); // 진실
경고 (0 === ""); // falsealsealert (0 === false); // falsealsealert ( ""=== false); // 거짓
===에 대해 이야기합시다. 이것은 비교적 간단하며 특정 비교 규칙은 다음과 같습니다.
1. 유형이 다르면 [동일하지 않습니다]
2. 둘 다 숫자 값이고 동일한 값이라면 [동일]; (! 예외)는 적어도 하나가 NAN이라면 [동일하지 않음]입니다. (값이 NAN인지 확인하려면 isnan ()을 사용하여 판단 할 수 있습니다)
3. 둘 다 문자열이고 각 위치의 문자가 동일하다면 [평등]; 그렇지 않으면 [동일하지 않음].
4. 두 값이 모두 참이 있거나 둘 다가 false 인 경우 [동일].
5. 두 값이 동일한 객체 또는 함수를 참조하면 [평등]; 그렇지 않으면 [동일하지 않음].
6. 두 값이 모두 null이거나 정의되지 않은 경우 [동일].
특정 비교 규칙은 다음과 같습니다.
1. 두 값 유형이 동일하면 === 비교를 수행하고 비교 규칙은 위와 동일합니다.
2. 두 값 유형이 다르면 동일 할 수 있습니다. 유형 변환은 다음 규칙에 따라 수행 된 다음 비교됩니다.
에이. 하나가 널이고 다른 하나는 정의되지 않은 경우 [동일].
비. 하나가 문자열이고 다른 하나는 숫자 값 인 경우 문자열을 숫자 값으로 변환 한 다음 비교하십시오.
기음. 값이 참이면 1으로 변환하여 비교하십시오. 값이 False 인 경우 0으로 변환하여 비교하십시오.
디. 하나가 객체이고 다른 하나는 숫자 또는 문자열 인 경우 객체를 기본 유형의 값으로 변환 한 다음 비교하십시오. 객체를 기본 유형으로 변환하고 ToString 또는 Values의 메소드를 사용하십시오. JS Core 내장 클래스는 Tostring 이전에 가치를 평가하려고합니다. 예외는 날짜이며 Tostring 변환을 사용합니다. 비 JS 핵심 객체, 말하자 (더 번거 롭다, 나는 많이 이해하지 못한다)
이자형. 다른 조합 (배열 배열 등)은 [동일하지 않음]입니다.