Kesetaraan Array dan Objek dalam JavaScript

Dec 13 2022
Dalam JavaScript, tanda sama dengan ganda(==) dan tanda tiga sama dengan(===) atau persamaan ketat adalah dua operator yang digunakan untuk memeriksa persamaan dua nilai. Kita ingat bahwa tanda sama dengan ganda tidak seperti tanda tiga sama dengan memeriksa hanya persamaan dari dua nilai tetapi tidak peduli apakah mereka dari jenis yang sama.

Dalam JavaScript, tanda sama dengan ganda(==) dan tanda tiga sama dengan(===) atau persamaan ketat adalah dua operator yang digunakan untuk memeriksa persamaan dua nilai. Kita ingat bahwa tanda sama dengan ganda tidak seperti tanda tiga sama dengan memeriksa hanya persamaan dari dua nilai tetapi tidak peduli apakah mereka dari jenis yang sama. Sebagai contoh:

// 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

Tetapi ketika kita menerapkan salah satu dari tanda-tanda ini pada sebuah array atau objek, perilakunya menjadi aneh. Sebagai contoh:

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

Alasannya adalah karena objek dan variabel array tidak menyimpan nilai tertentu yang diberikan kepadanya secara langsung, melainkan menyimpan referensi ke tempat asli di memori tempat array atau objek disimpan. Lihatlah diagram di bawah ini untuk pemahaman yang benar:

Seperti yang bisa kita lihat dari gambar di atas, variabel "obj1" menyimpan referensi memori tempat objek sebenarnya disimpan, yang dalam hal ini adalah 12456754 (angka ini saya buat untuk tujuan penjelasan) sama dengan variabel "obj2" yang juga menyimpan referensi memori tempat objek sebenarnya disimpan di memori yaitu 98537562. Kita dapat melihat bahwa nilai obj1 stores(12456754) berbeda dengan nilai obj2 stores(98537562). Itu dapat ditulis dengan benar seperti ini:

const obj1 = 12456754;
const obj2 = 98537562;

Satu-satunya cara dua objek atau variabel array bisa sama hanya jika kita menyamakan atau menetapkan variabel baru (obj2) ke array atau variabel objek (obj1). Sebagai contoh:

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: Saya hanya menggunakan objek dalam contoh saya tetapi alasan dan penjelasan yang sama masih berlaku untuk array.