Dalam JavaScript, objek ialah salah satu struktur data yang paling kerap digunakan. Objek menyimpan koleksi data dalam bentuk pasangan nilai kunci, dan mengetahui sama ada kunci tertentu wujud dalam objek adalah keperluan biasa. Nasib baik, menyediakan beberapa cara untuk menyemak javascript jika kunci wujud dalam objek, setiap satu sesuai dengan keperluan dan senario yang berbeza.
Dalam artikel ini, kami akan meneroka beberapa kaedah untuk menyemak sama ada kunci wujud dalam objek, menyerlahkan perbezaannya, kes penggunaan dan kemungkinan perangkap.
jika ('nama' secara peribadi) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}
jika ('alamat' secara peribadi) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Dalam contoh ini, 'nama' secara peribadi mengembalikan benar kerana nama ialah sifat objek. Walau bagaimanapun, 'alamat' secara peribadi mengembalikan palsu kerana kunci alamat tidak wujud dalam objek.
Kes Penggunaan:
Gunakan operator in apabila anda ingin menyemak sama ada sesuatu sifat wujud dalam objek, tidak kira sama ada ia adalah harta langsung atau diwarisi daripada prototaip.
jika (orang.hasOwnProperty('name')) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}
jika (person.hasOwnProperty('alamat')) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Dalam kes ini, hasOwnProperty() akan mengembalikan true untuk nama kerana ia merupakan sifat langsung objek orang dan palsu untuk alamat kerana ia tidak wujud.
Kes Penggunaan:
Gunakan hasOwnProperty() apabila anda perlu menyemak sama ada harta adalah ahli langsung objek dan tidak diwarisi daripada rantai prototaipnya.
jika (orang.nama !== tidak ditentukan) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}
jika (orang.alamat !== tidak ditentukan) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Dalam contoh ini, kunci nama wujud, tetapi memandangkan nilainya tidak ditakrifkan, semakan akan lulus. Walau bagaimanapun, alamat tidak ditakrifkan dalam objek, jadi semakan akan menunjukkan dengan betul bahawa kunci itu tidak wujud.
Kes Penggunaan:
Kaedah ini berfungsi jika anda pasti objek itu tidak akan mempunyai sifat yang ditetapkan secara eksplisit kepada tidak ditentukan. Ia berguna apabila anda hanya perlu menyemak sama ada nilai ditetapkan atau tidak, tetapi berhati-hati terhadap positif palsu.
jika (Object.hasOwn(orang, 'nama')) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}
jika (Object.hasOwn(orang, 'alamat')) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Kaedah ini bersamaan dengan hasOwnProperty() tetapi lebih selamat untuk digunakan dalam persekitaran yang kaedah hasOwnProperty() mungkin ditindih.
Kes Penggunaan:
Gunakan Object.hasOwn() apabila anda mahukan alternatif yang lebih selamat dan moden kepada hasOwnProperty() dan berfungsi dalam persekitaran yang menyokong ES2022 atau lebih tinggi.
Kesimpulan
Apabila menyemak sama ada kunci wujud dalam objek JavaScript, kaedah yang anda pilih akan bergantung pada keperluan khusus anda:
• Gunakan dalam jika anda ingin menyemak kedua-dua harta langsung dan warisan.
• Gunakan hasOwnProperty() jika anda hanya mahu menyemak sifat langsung dan mengecualikan yang diwarisi.
• Gunakan cek tidak ditentukan jika anda memerlukan semakan pantas tetapi berhati-hati terhadap sifat yang ditetapkan secara jelas kepada tidak ditentukan.
• Gunakan Object.hasOwn() untuk alternatif yang lebih selamat dan moden kepada hasOwnProperty() dalam persekitaran ES2022.
Setiap kaedah ini memberikan fleksibiliti dalam mengendalikan senario yang berbeza, memastikan anda boleh menyemak kehadiran kunci dalam objek anda dengan berkesan berdasarkan keperluan aplikasi anda.
Atas ialah kandungan terperinci Cara Menyemak sama ada Kunci Wujud dalam Objek JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!