JavaScript에서 == 및 == 연산자를 사용하여 두 값이 동일한지 여부를 결정할 수 있습니다. 차이점은 판단 된 두 값이 일치하지 않으면 === 연산자가 직접 False를 반환하는 반면, == 조작자는 유형 변환 후 판단을한다는 것입니다. 자세한 판결 규칙은 다음과 같습니다.
=== 운영자 판단 규칙
1. 두 값의 유형이 일치하지 않으면 False를 반환하십시오.
2. 두 값의 유형이 동일하고 값이 동일하면 true를 반환하십시오. Nan은 특별한 경우입니다. Nan === Nan은 거짓을 반환합니다.
3. 두 값이 객체 유형 인 경우, 참조가 일관되지 않는 한 (동일한 객체 주소에 대한 참조 점)가 아니라면 객체의 내용이 정확히 동일하더라도 두 값은 일치하지 않는 것으로 간주되며 해당 작업은 False를 반환합니다. 예를 들어, 정확히 동일한 컨텐츠로 두 개의 새 배열을 생성 한 다음 === 작업을 수행하고 결과를 False로 반환합니다. 콘텐츠는 정확히 동일하지만 여전히 두 개의 다른 객체에 속합니다.
4.0 ===-0은 true를 반환합니다.
== 운영자 판단 규칙
== 연산자는 값을 입력 한 다음 비교합니다. 유형 변환은 다음과 같은 원칙을 따릅니다. 먼저 숫자로 변환 한 다음 비교 한 다음 먼저 문자열로 변환 한 다음 비교하십시오. 특정 판단 규칙은 다음과 같습니다.
1. 두 값 유형이 동일하면 === 작업을 수행 한 후 반환하십시오.
2.null == 정의되지 않은 것은 참입니다.
3. true는 1으로 변환되고 비교되면 False는 0으로 변환되어 비교됩니다.
4. 값 중 하나가 객체 인 경우 날짜 개체를 제외하고 숫자로 변환 한 다음 비교하십시오.
5. 값 중 하나가 날짜 객체 인 경우 문자열로 변환 한 다음 비교하십시오.
실험
코드 사본은 다음과 같습니다.
console.log ( "3"=== 3); // false
console.log (nan === nan); // false
var a = {x : 1, y : 2};
var b = {x : 1, y : 2};
var c = a;
console.log (a === b); // false
console.log (a === c); // true
console.log (0 === -0); // true
Console.log ( "3"== 3); // true
console.log (null == undefined); // true
console.log (true == 1); // true
console.log (true == 9); // false
Console.log ([9] == 9); // true
console.log ([9] == "9"); // true
var d = 새로운 날짜 ();
var s = d.toString ();
var n = d.Valueof ();
console.log (d == s); // true
console.log (d == n); // false