미스터리 풀기: 동일한 속성의 객체가 동등성 검사에 실패하는 이유
JavaScript 영역에서 동등 연산자(== 및 = ==)는 동일한 속성을 가진 객체를 비교할 때 예기치 않게 동작하는 것으로 보입니다. 이 예외는 JavaScript의 객체 비교의 기본 원칙에서 비롯됩니다.
다음 코드를 고려하세요.
var a = {}; var b = {}; console.log(a == b); // returns false console.log(a === b); // returns false
흥미롭게도 객체 'a'와 'b'가 동일한 속성을 갖고 있음에도 불구하고 동등성 검사는 거짓을 산출합니다. 동일한 속성을 가진 객체가 동일한 것으로 간주될 것으로 예상할 수 있으므로 이 동작은 직관에 어긋나는 것처럼 보입니다.
이 현상을 이해하려면 일반(==) 동등과 엄격한(===) 동등 간의 차이를 인식하는 것이 중요합니다. 엄격한 항등(===)은 유형 변환을 비활성화하지만 두 경우 모두 객체 비교는 정확히 동일한 객체를 비교할 때만 true로 평가됩니다.
즉, 사용된 항등 연산자의 유형에 관계없이 원칙은 동일하게 유지됩니다. 객체는 정확히 동일한 인스턴스를 참조하는 경우에만 동일합니다. 따라서 동일한 속성(예: 'a' 및 'b')을 가진 서로 다른 두 객체는 JavaScript의 관점에서 결코 동일하지 않습니다.
객체 속성의 동일성을 확인해야 하는 경우, 객체를 순회하고 해당 속성 값을 하나씩 비교하는 등의 대체 접근 방식을 모색해 보세요.
위 내용은 동일한 JavaScript 개체가 동등성 검사에 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!