1. 문자열, 숫자 등 기본 유형의 경우 ==와 ===의 차이가 있습니다.
1) 유형별 비교는 ==의 비교입니다. "값"이 같은지 확인하기 위해 유형 뒤에 동일한 "값"으로 변환, ===유형이 다르면 결과가 동일하지 않음
2) 동일한 유형을 비교, 직접 비교 "값"이면 결과는 동일합니다
2. Array, Object 등 고급 유형의 경우 ==와 ===
"포인터 주소" 비교
3. 기본형과 고급형은 차이가 있습니다. == 와 ===
1) ==는 고급형으로 변환 기본 유형을 입력하고 "값" 비교를 수행합니다
2) 유형이 다르기 때문에 === 결과는 false입니다.
때로는 세 개의 등호(===)가 표시되는 경우가 있습니다. 두 개체가 같은지 여부를 판단할 때 사용됩니다. 이는 두 개의 등호와 같습니다. 숫자(==)의 차이점은 무엇인가요? 간단히 말하면, "=="를 사용할 때 양쪽의 타입이 다를 경우 js 엔진은 이를 동일한 타입으로 변환한 후 비교하게 되는데, "==="는 타입 변환을 수행하지 않으므로, 양측은 동일한 유형에 속하지 않으며 확실히 동일하지 않습니다. 예:
var a = 0, b = '0'; alert((a == b) + '--' + (a === b))
이때 표시되는 결과는 "true–false"입니다.
=== 판단 규칙
유형이 다를 경우 [같지 않음]
둘 다 수치인 경우 , 및 값이 동일한 경우 [같음]; (!Exception)은 둘 중 하나 이상이 NaN인 경우 [같지 않음]입니다. (값이 NaN인지 확인하려면 isNaN()만 사용하면 됩니다.)
둘 다 문자열이고 각 위치의 문자가 동일하면 [같음]입니다. 그렇지 않으면 [같지 않음].
두 값이 모두 참이거나, 둘 다 거짓이면 [같음]입니다.
두 값이 동일한 개체나 함수를 참조하면 [같음]이고, 그렇지 않으면 [같지 않음]입니다.
두 값이 모두 null이거나 둘 다 정의되지 않은 경우 [같음]입니다.
== 판단 규칙:
두 값 유형이 동일할 경우 === 비교를 수행합니다.
두 값의 유형이 다른 경우에는 동일할 수 있습니다. 유형 변환을 수행한 후 다음 규칙에 따라 비교하십시오.
하나가 null이고 다른 하나가 정의되지 않은 경우 [같음]입니다.
하나가 문자열이고 다른 하나가 숫자 값인 경우 문자열을 숫자 값으로 변환한 후 비교합니다.
값이 true이면 1로 변환하여 비교하고, false이면 0으로 변환하여 비교합니다.
하나가 객체이고 다른 하나가 숫자 값 또는 문자열인 경우 객체를 기본 유형의 값으로 변환한 후 비교합니다. 객체는 toString 또는 valueOf 메소드를 사용하여 기본 유형으로 변환됩니다. JS 핵심 내장 클래스는 toString 전에 valueOf를 시도합니다. 예외는 toString 변환을 사용하는 Date입니다. JS가 아닌 핵심 객체의 경우
의 다른 조합은 [같지 않음]입니다.
참과 거짓의 변환에 특별한 주의를 기울여야 합니다. 예:
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입니다.
위 내용은 js에서 ==와 ===의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!