왜 두 개의 동일한 객체가 서로 동일하지 않습니까?
JavaScript에서는 항등 연산자(==)와 완전 항등 연산자가 사용됩니다. (===)는 값을 비교하는 데 사용됩니다. 그러나 객체를 비교할 때 이러한 연산자는 예상과 다르게 동작합니다.
다음 코드를 고려하세요.
var a = {}; var b = {}; console.log(a == b); // returns false console.log(a === b); // returns false
이 코드는 a와 b가 모두임에도 불구하고 두 표현식 모두에 대해 false를 기록합니다. 빈 개체. 왜 그렇습니까?
일반(==) 동등과 엄격한(===) 동등의 주요 차이점은 엄격한 동등 연산자는 유형 변환을 비활성화한다는 것입니다. a와 b는 모두 객체이므로 이 경우 항등 연산자의 유형은 중요하지 않습니다.
사용된 항등 연산자에 관계없이 객체 비교는 동일한 객체를 비교하는 경우에만 true로 평가됩니다. . 즉, var a = {}, b = a, c = {};, a == a, a == b이지만 a != c인 경우입니다.
두 개의 다른 객체(비록 그들이 0 또는 동일한 정확한 속성을 가짐)은 결코 동등하게 비교되지 않습니다. 두 개체 속성의 동일성을 비교하려면 Object.is() 메서드를 사용하거나 제공된 답변에 설명된 접근 방식을 사용할 수 있습니다.
위 내용은 두 개의 빈 JavaScript 개체가 동일하게 비교되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!