Igualdad de matrices y objetos en JavaScript
En JavaScript, el signo de igual doble (==) y el signo de igual triple (===) o la igualdad estricta son los dos operadores que se utilizan para verificar la igualdad de dos valores. Recordamos que el signo de igual doble a diferencia del signo de igual triple comprueba solo la igualdad de los dos valores pero no le importa si son del mismo tipo. Por ejemplo:
// 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
Pero cuando aplicamos cualquiera de estos signos en una matriz u objeto, el comportamiento se vuelve extraño. Por ejemplo:
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
La razón es porque las variables de objetos y matrices no almacenan los valores particulares que se les asignan directamente, sino que almacenan una referencia al lugar original en la memoria donde se almacena la matriz o el objeto. Eche un vistazo al diagrama a continuación para una comprensión adecuada:
Como podemos ver en la imagen de arriba, la variable "obj1" almacena la referencia de la memoria donde se almacena el objeto real, que en este caso es 12456754 (inventé este número con fines explicativos) al igual que la variable "obj2" que también almacena la referencia de la memoria donde se almacena el objeto real en la memoria que es 98537562. Podemos ver que el valor obj1 almacena (12456754) es diferente del valor obj2 almacena (98537562). Se puede escribir correctamente así:
const obj1 = 12456754;
const obj2 = 98537562;
La única forma en que dos objetos o variables de matrices pueden ser iguales es solo si igualamos o asignamos una nueva variable (obj2) a una variable de matriz u objeto (obj1). Por ejemplo:
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: solo utilicé objetos en mis ejemplos, pero la misma razón y explicación aún se aplican a las matrices.

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































