JavaScript에서 엄격한 항등 연산자를 사용하여 객체 동일성을 결정하면 객체 유형의 동일성만 드러납니다. 이는 객체 동등성을 확인하기 위해 Java의 해시 코드 값과 유사한 메커니즘이 존재하는지에 대한 의문을 제기합니다.
Is There a HashCode Equivalent in JavaScript?
유사한 쿼리 Stack Overflow("JavaScript에 어떤 종류의 hashCode 함수가 있습니까?")는 솔루션의 필요성을 강조합니다. 다음 시나리오는 그 필요성을 더욱 잘 보여줍니다.
const obj1 = { name: "John Doe", age: 25 }; const obj2 = { name: "John Doe", age: 25 }; console.log(obj1 === obj2); // false (different memory references)
동등한 솔루션
다행히도 JavaScript는 lodash 라이브러리 형태로 솔루션을 제공합니다. 이는 다음과 같은 isEqual() 함수를 제공합니다.
const { isEqual } = require('lodash'); const result = isEqual(obj1, obj2); // true (objects are equal)
Lodash 무차별 공격은 성능을 위해 ECMAScript 5 최적화를 사용하여 각 키-값 쌍을 비교합니다. 이 답변은 이전에 Underscore.js를 권장했지만 Lodash는 버그 수정 및 일관성 측면에서 이를 능가했습니다.
위 내용은 JavaScript에는 객체 평등에 해당하는 HashCode가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!