> 웹 프론트엔드 > JS 튜토리얼 > 동일한 JavaScript 개체가 동등성 검사에 실패하는 이유는 무엇입니까?

동일한 JavaScript 개체가 동등성 검사에 실패하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-08 03:56:09
원래의
823명이 탐색했습니다.

Why Do Identical JavaScript Objects Fail Equality Checks?

미스터리 풀기: 동일한 속성의 객체가 동등성 검사에 실패하는 이유

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿