JavaScript에서 배열과 객체의 동등성
Dec 13 2022
JavaScript에서 이중 등호(==)와 삼중 등호(===) 또는 완전 동등은 두 값이 같은지 확인하는 데 사용되는 두 연산자입니다. 삼중 등호와 달리 이중 등호는 두 값의 동등성만 확인하고 동일한 유형인지는 신경 쓰지 않는다는 것을 기억합니다.
JavaScript에서 이중 등호(==)와 삼중 등호(===) 또는 완전 동등은 두 값이 같은지 확인하는 데 사용되는 두 연산자입니다. 삼중 등호와 달리 이중 등호는 두 값의 동등성만 확인하고 동일한 유형인지는 신경 쓰지 않는다는 것을 기억합니다. 예를 들어:
// double equality
const num = 2
const num2 = '2'
console.log(2==2)
// output will be true
// triple equality
const num = 2
const num2 = '2'
console.log(2===2)
// output will be false
그러나 배열이나 객체에 이 표시 중 하나를 적용하면 동작이 이상해집니다. 예를 들어:
const obj1={
name: 'kenneth',
country:'Nigeria',
age:26
}
const obj2={
name: 'kenneth',
country:'Nigeria',
age:26
}
console.log(obj1 == obj2)
//this outputs false
console.log(obj1 === obj2)
// this still outputs false
그 이유는 개체 및 배열 변수가 직접 할당된 특정 값을 저장하지 않고 배열 또는 개체가 저장된 메모리의 원래 위치에 대한 참조를 저장하기 때문입니다. 올바른 이해를 위해 아래 다이어그램을 살펴보십시오.
위의 그림에서 알 수 있듯이 “obj1” 변수는 실제 객체가 저장되어 있는 메모리의 레퍼런스를 저장하고 있는데, 이 경우 변수 “obj2”와 동일한 12456754(설명을 위해 이 숫자를 만들어 붙였습니다)입니다. 실제 객체가 저장된 메모리의 참조도 98537562에 저장됩니다. obj1이 저장하는 값(12456754)이 obj2가 저장하는 값(98537562)과 다른 것을 볼 수 있습니다. 다음과 같이 올바르게 작성할 수 있습니다.
const obj1 = 12456754;
const obj2 = 98537562;
두 개체 또는 배열 변수가 동일할 수 있는 유일한 방법은 새 변수(obj2)를 배열 또는 개체 변수(obj1)와 같거나 할당하는 경우에만 가능합니다. 예를 들어:
const obj1={
name: 'kenneth',
country:'Nigeria',
age:26
}
const obj2 = obj1;
console.log(obj1 == obj2)
// this will output true
console.log(obj1 === obj2)
// this will still be true
NB: 예제에서는 개체만 사용했지만 동일한 이유와 설명이 배열에도 여전히 적용됩니다.

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































