Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Bagaimana untuk menentukan sama ada dua objek adalah sama dalam es6

Bagaimana untuk menentukan sama ada dua objek adalah sama dalam es6

青灯夜游
Lepaskan: 2022-04-19 15:34:59
asal
3908 orang telah melayarinya

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.

Bagaimana untuk menentukan sama ada dua objek adalah sama dalam es6

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
Salin selepas log masuk

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)
Salin selepas log masuk

kedua-duanya tidak ditentukan
  • kedua-duanya batal
  • semuanya benar atau salah
  • ialah semua rentetan yang sama panjang dan aksara yang sama disusun dalam susunan yang sama
  • ialah semua objek yang sama ( bermakna setiap objek mempunyai rujukan yang sama)
  • ialah semua nombor dan
  • semuanya 0
    • Kedua-duanya adalah -0
    • Kedua-duanya adalah NaN
    • Atau kedua-duanya bukan sifar dan bukan- NaN dan nilai yang sama
    Nilai pulangan: jenis Boolean untuk menunjukkan sama ada kedua-dua parameter adalah nilai yang sama.

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
Salin selepas log masuk

Bagaimana untuk menentukan sama ada dua objek adalah sama dalam es6Contoh 2:

Pengetahuan lanjutan:
Object.is('foo', 'foo')  //true
Object.is(window, window)  //true
Object.is([], [])  //false
Object.is(null, null)  //true
Salin selepas log masuk

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 web

]

Atas 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!

Label berkaitan:
es6
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan