Rumah > Artikel > hujung hadapan web > Bagaimana untuk menentukan sama ada dua objek adalah sama dalam es6
Dalam es6, kaedah is() bagi objek Objek boleh digunakan untuk menentukan sama ada dua objek adalah sama Kaedah ini mengesan sama ada nilai dua pembolehubah adalah nilai yang sama dan menentukan sama ada alamat rujukan daripada dua objek adalah konsisten. Sintaks "Object.is(Object 1, Object 2)"; kaedah ini akan mengembalikan nilai Boolean.
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
Dua objek jenis objek, walaupun ia mempunyai sifat yang sama dan nilai yang sama, tidak dianggap sama apabila dibandingkan menggunakan == atau ===. Ini kerana ia dibandingkan dengan rujukan (lokasi dalam ingatan), tidak seperti jenis primitif yang dibandingkan dengan nilai.
var obj1 = { name: "xiaoming", sex : "male" } var obj2 = { name: "xiaoming", sex : "male" } console.log(obj1 === obj2); // false
Tetapi ES6 menyediakan kaedah untuk menentukan sama ada dua objek adalah sama Kaedah ini menentukan sama ada alamat rujukan kedua-dua objek adalah konsisten. kaedah Sama ada kedua-dua nilai adalah nilai yang sama. Kedua-dua nilai adalah sama jika syarat berikut dipenuhi:
Object.is(a,b)kedua-duanya tidak ditentukan
Kedua-duanya adalah -0
Contoh 1:
let obj1= { a: 1 } let obj2 = { a: 1 } console.log(Object.is(obj1, obj2)) // false let obj3 = obj1 console.log(Object.is(obj1, obj3)) // true console.log(Object.is(obj2, obj3)) // fals
Contoh 2:
Pengetahuan lanjutan:
Object.is('foo', 'foo') //true Object.is(window, window) //true Object.is([], []) //false Object.is(null, null) //true
Kaedah Object.is() berbeza daripada operasi == (en-US). Operator == membuang pembolehubah pada kedua-dua belah pihak (jika ia bukan jenis yang sama) sebelum menilai kesaksamaan (hasil tingkah laku ini akan menilai "" == palsu sebagai benar), manakala Object.is tidak membuang pembolehubah pada nilai kedua-dua belah pihak.
Kaedah Object.is() juga berbeza daripada operasi === (en-US). Operator === (juga termasuk operator ==) menganggap nombor -0 dan 0 sebagai sama, dan menganggap Number.NaN dan NaN sebagai tidak sama [Cadangan berkaitan:Tutorial video javascript<.>,
bahagian hadapan webAtas ialah kandungan terperinci Bagaimana untuk menentukan sama ada dua objek adalah sama dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!