>웹 프론트엔드 >JS 튜토리얼 >두 개의 빈 JavaScript 개체가 동일하게 비교되지 않는 이유는 무엇입니까?

두 개의 빈 JavaScript 개체가 동일하게 비교되지 않는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-04 01:59:11896검색

Why Do Two Empty JavaScript Objects Not Compare as Equal?

왜 두 개의 동일한 객체가 서로 동일하지 않습니까?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.