객체 평등 이해: 동일한 두 객체가 같지 않은 이유
프로그래밍에서는 동일한 객체를 나타내는 두 변수가 동일해야 한다고 가정하는 것이 직관적입니다. 동등한 것으로 간주됩니다. 그러나 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!