때때로 두 객체가 같은지 판단할 때 세 개의 등호(===)를 사용할 때 두 개의 등호(==)와 차이점이 무엇인지 알 수 있습니다. 간단히 말하면, "=="를 사용할 때 양쪽의 타입이 다를 경우 js 엔진은 이를 동일한 타입으로 변환한 후 비교하게 되는데, "==="는 타입 변환을 수행하지 않으므로, 양측은 동일한 유형에 속하지 않으며 확실히 동일하지 않습니다. 예:
var a = 0, b = '0'; alert((a == b) + '--' + (a === b))
이때 표시되는 결과는 "true–false"입니다.
=== 판단 규칙
유형이 다르면 [같지 않음]
둘 다 숫자 값이고 동일한 값이면 [같음]입니다. 그 중 적어도 하나는 NaN이고 그 다음은 [같지 않음]입니다. (값이 NaN인지 확인하려면 isNaN()만 사용하여 확인할 수 있습니다.)
둘 다 문자열이고 각 위치의 문자가 동일하면 [같음]이고, 그렇지 않으면 [같지 않음]입니다.
두 값이 모두 참이거나 둘 다 거짓이면 [같음]입니다.
두 값이 동일한 개체나 함수를 참조하는 경우 [같음]이고, 그렇지 않으면 [같지 않음]입니다.
두 값이 모두 null이거나 둘 다 정의되지 않은 경우 [같음]입니다.
== 판단 규칙:
두 값 유형이 동일하면 === 비교를 수행합니다.
두 값 유형이 다른 경우에는 동일할 수 있습니다. 유형 변환을 수행한 후 다음 규칙에 따라 비교합니다.
하나는 null이고 다른 하나는 정의되지 않은 경우 [equal]입니다.
하나가 문자열이고 다른 하나가 숫자 값인 경우 문자열을 숫자 값으로 변환한 후 비교하세요.
값이 true이면 1로 변환하여 비교하고, false이면 0으로 변환하여 비교합니다.
하나가 객체이고 다른 하나가 숫자 값이나 문자열인 경우 객체를 기본 유형의 값으로 변환한 후 비교합니다. 객체는 toString 또는 valueOf 메소드를 사용하여 기본 유형으로 변환됩니다. JS 핵심 내장 클래스는 toString 전에 valueOf를 시도합니다. 예외는 toString 변환을 사용하는 Date입니다. JS가 아닌 핵심 객체를 예로 들어보겠습니다. (더 귀찮고 이해가 잘 안 됩니다.)
다른 조합은 [같지 않음]입니다.
true와 false의 변환에 특별한 주의를 기울여야 합니다. 예:
alert(true == 1); //ture alert(true == 2); //false, true会转换成number,也就是1,当然 1 不等于 2 //可以使用 !! 来把一个数据类型转换为boolean型 alert(true == !!2) //true,!2 === false !(!=2) = !false = true
또한 js에서 변수가 논리 연산에 사용되는 경우 변수에는 초기 값이 없거나 해당 값이 다음과 같습니다. 0, -0, null, "", false, 정의되지 않음 또는 NaN인 경우 해당 값은 false입니다. 그렇지 않은 경우 해당 값은 true입니다.
위 내용은 ==와 ===의 사용법 차이점을 비교하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!