> 웹 프론트엔드 > JS 튜토리얼 > 두 개의 동일한 JavaScript 개체가 동일한 것으로 간주되지 않는 이유는 무엇입니까?

두 개의 동일한 JavaScript 개체가 동일한 것으로 간주되지 않는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-05 02:56:13
원래의
524명이 탐색했습니다.

Why Are Two Identical JavaScript Objects Not Considered Equal?

객체 평등 이해: 동일한 두 객체가 같지 않은 이유

프로그래밍에서는 동일한 객체를 나타내는 두 변수가 동일해야 한다고 가정하는 것이 직관적입니다. 동등한 것으로 간주됩니다. 그러나 JavaScript에서는 항등 연산자(==) 또는 엄격한 항등 연산자(===)를 사용하여 두 객체를 비교하면 종종 놀라운 결과가 나옵니다.

미스터리: 동일하지 않은 객체

다음 코드를 고려하세요.

var a = {};
var b = {};

console.log(a == b); //returns false
console.log(a === b); //returns false
로그인 후 복사

예상대로 true를 반환하는 대신 두 비교를 모두 수행합니다. 거짓을 반환합니다. 이 동작은 겉보기에 동일한 두 개체가 동일할 것으로 기대하는 개발자를 혼란스럽게 합니다.

설명: 개체 비교 의미

이 동작을 이해하는 열쇠는 JavaScript가 비교하는 방식에 있습니다. 사물. 숫자나 문자열과 같은 원시 데이터 유형과 달리 객체에는 고유한 ID 또는 참조가 있습니다. 두 개체를 비교할 때 동등 연산자는 동일한 개체를 참조하는지 확인합니다.

ID 대 값

위의 예에서 , a 및 b는 구조와 속성이 동일하더라도 서로 다른 두 개체입니다. 각 객체에는 고유한 참조가 있으며 같음 연산자는 객체의 값 대신 이 참조를 평가합니다.

객체 비교에 대한 의미

이 동작은 객체 비교. 두 객체는 ​​동일한 객체를 참조하는 경우에만 동일합니다. 한 개체를 다른 개체에 할당하면 동일한 개체에 대한 새 참조가 생성됩니다.

해결 방법: 개체 속성 비교

두 개체 속성의 동등성을 비교해야 하는 경우 , 한 가지 해결 방법은 JSON.stringify() 메서드를 사용하여 개체를 JSON 문자열로 변환한 다음 결과 문자열을 비교하는 것입니다. 또는 도우미 함수나 라이브러리를 사용하여 개체 속성을 재귀적으로 비교할 수 있습니다.

위 내용은 두 개의 동일한 JavaScript 개체가 동일한 것으로 간주되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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