Jadual Kandungan
Kaedah Moden (ES5)
1. Kaedah Object.keys() mengembalikan pelbagai nama atribut penghitungan objek yang diberikan. Oleh itu, kita boleh menyemak sama ada objek mempunyai sebarang sifat dengan mengira panjang array ini.
2. Object.getOwnPropertyNames() Kaedah Mengembalikan pelbagai sifat objek yang diberikan. Walaupun ia mungkin kelihatan sama seperti kaedah Object.keys() , kaedah Object.getOwnPropertyNames() juga menganggap sifat yang tidak dapat dipertikaikan, manakala Object.keys() merindui beberapa sifat yang diisytiharkan tidak dapat dipertahankan.
4. Object.entries() Kaedah Mengembalikan pelbagai tatasusunan, setiap elemen adalah pelbagai pasang nilai utama objek objek.
Penyelesaian peluru
Rancangan sebelumnya ES5
kesimpulannya
Rumah hujung hadapan web tutorial js Cara memeriksa sama ada objek kosong di JavaScript

Cara memeriksa sama ada objek kosong di JavaScript

Mar 15, 2025 am 09:11 AM

Cara memeriksa sama ada objek kosong di JavaScript

Artikel ini dengan cepat akan menerangkan bagaimana untuk memeriksa sama ada objek kosong di JavaScript.

Dalam pembangunan JavaScript harian, anda mungkin perlu menyemak sama ada objek itu kosong. Jika anda pernah melakukan ini, anda mungkin tahu tiada penyelesaian langsung tunggal. Walau bagaimanapun, anda boleh menggunakan teknik yang berbeza untuk membuat penyelesaian tersuai yang sesuai dengan kes penggunaan anda sendiri. Di samping itu, jika anda menggunakan perpustakaan utiliti JavaScript dalam projek anda, perpustakaan mungkin telah menyediakan cara terbina dalam untuk memeriksa sama ada objek itu kosong.

Kaedah Moden (ES5)

Dalam bahagian ini, kami akan membincangkan kaedah yang berbeza yang boleh anda gunakan dalam pelayar moden yang menyokong versi ES5.

1. Kaedah Object.keys() mengembalikan pelbagai nama atribut penghitungan objek yang diberikan. Oleh itu, kita boleh menyemak sama ada objek mempunyai sebarang sifat dengan mengira panjang array ini.

Mari lihat contoh berikut.

 fungsi isemptyObject (obj) {
    kembali object.keys (obj) .length === 0;
}

Console.log (isemptyObject ({}));

var bar = {"foo": "1"};
console.log (object.keys (bar) .length);
Console.log (isemptyObject (bar));
Salin selepas log masuk

Seperti yang ditunjukkan dalam contoh di atas, atribut foo dilampirkan, jadi fungsi isEmptyObject akan mengembalikan fungsi isEmptyObject dengan nilai yang berbeza.

Perhatikan bahawa isEmptyObject akan kembali true untuk objek REGEXP.

 Console.log (isemptyObject (date.now ()));
Console.log (isemptyObject (baru regexp ()));
Salin selepas log masuk
Salin selepas log masuk

Juga, berhati -hati kerana kaedah ini dipanggil dengan nilai yang tidak ditentukan. Mereka boleh menyebabkan pengecualian. Kemudian, kami akan membuat penyelesaian peluru yang tidak gagal pada input kosong.

 Console.log (isemptyObject (null));
Salin selepas log masuk
Salin selepas log masuk

2. Object.getOwnPropertyNames() Kaedah Mengembalikan pelbagai sifat objek yang diberikan. Walaupun ia mungkin kelihatan sama seperti kaedah Object.keys() , kaedah Object.getOwnPropertyNames() juga menganggap sifat yang tidak dapat dipertikaikan, manakala Object.keys() merindui beberapa sifat yang diisytiharkan tidak dapat dipertahankan.

Mari lihat contoh berikut.

 fungsi isemptyObject (obj) {
    kembali objek.getownPropertyNames (OBJ) .length === 0;
}

Console.log (isemptyObject ({}));

var bar = {"foo": "1"};
Console.log (Object.GetownPropertyNames (bar) .length);
Console.log (isemptyObject (bar));
Salin selepas log masuk

Seperti yang anda lihat, gunakan Object.keys() untuk menguji nilai null.

Walau bagaimanapun, kes kelebihannya sedikit berbeza - Date , tetapi untuk null atau JSON.stringify akan kembali false .

Gunakan {} untuk memeriksa sama ada objek yang diberikan kosong.

Mari lihat contoh berikut.

 fungsi isemptyObject (obj) {
    kembali json.stringify (obj) === '{}';
}

Console.log (isemptyObject ({}));

var bar = {"foo": "1"};
Console.log (json.stringify (bar));
Console.log (isemptyObject (bar));
Salin selepas log masuk

Sekali lagi, keadaan kelebihan sedikit berbeza. "1651283138454" digunakan dalam regexp. Jadi gunakan Object.getOwnPropertyNames kaedah!

 console.log (isemptyObject (date.now ()));
Console.log (isemptyObject (baru regexp ()));
Salin selepas log masuk

Satu lagi perubahan adalah false , yang mungkin bukan apa yang anda harapkan.

 Console.log (isemptyObject (null));
Salin selepas log masuk
Salin selepas log masuk

4. Object.entries() Kaedah Mengembalikan pelbagai tatasusunan, setiap elemen adalah pelbagai pasang nilai utama objek objek.

Mari lihat contoh berikut untuk memahami bagaimana ia berfungsi dengan tepat.

 fungsi isemptyObject (obj) {
    pulangan objek.entries (obj) .length === 0;
}

Console.log (isemptyObject ({}));

var bar = {"foo": "1"};
console.log (object.entries (bar));
console.log (object.entries (bar) .length);
Console.log (isemptyObject (bar));
Salin selepas log masuk

Seperti yang anda dapat lihat, kaedah Object.keys() akan memberikan hasil yang sama untuk contoh kes EDGE Objek RegEXP kami. Untuk input yang tidak ditentukan, ia juga melemparkan pengecualian.

 Console.log (isemptyObject (date.now ()));
Console.log (isemptyObject (baru regexp ()));
Salin selepas log masuk
Salin selepas log masuk

Penyelesaian peluru

Satu masalah dengan penyelesaian mudah yang disebutkan di atas ialah mereka memberikan hasil yang tidak konsisten untuk kes kelebihan: objek khas (seperti tarikh), nilai yang tidak ditentukan, atau primitif (seperti integer). Ini adalah penyelesaian yang mudah tetapi lebih dipercayai.

 fungsi isEmptyObject (nilai) {
  Jenis Const = Nilai Typeof
  const isObject = value! = null && type === 'Object'
  kembali isObject && object.keys (nilai) .length === 0;
}
Salin selepas log masuk

Kaedah ini dilakukan dengan tepat dengan namanya: ia mengembalikan true jika dan hanya jika nilai input adalah objek dan objek kosong. Ia akan berfungsi dengan nilai null dan undefined kembali false kerana mereka bukan objek. Untuk objek khas seperti regexp, ia akan kembali true kerana mereka tidak menentukan sebarang kunci khas. Ia juga kembali true untuk tatasusunan kosong dan false untuk tatasusunan yang tidak kosong.

Rancangan sebelumnya ES5

Dalam bahagian ini, kami akan membincangkan penyelesaian yang berfungsi walaupun dalam pelayar yang lebih tua. Kaedah ini sering digunakan sebelum era JavaScript ES5, apabila tiada kaedah terbina dalam untuk memeriksa sama ada objek kosong.

Mari lihat contoh berikut.

 fungsi isemptyObject (obj) {
    untuk (var harta dalam obj) {
        jika (obj.hasownProperty (harta)) {
            kembali palsu;
        }
    }

    kembali benar;
}

Console.log (isemptyObject ({}));
Console.log (isemptyObject ({"foo": "1"}));
Salin selepas log masuk

Dalam contoh di atas, kami membina fungsi tersuai yang boleh anda panggil untuk memeriksa sama ada objek itu kosong. Ia menerima parameter, dan anda perlu lulus objek untuk diuji. Dalam palsu, jika tidak, kami akan mengembalikan fungsi isEmptyObject dengan nilai yang berbeza. Seperti yang ditunjukkan dalam contoh di atas, kami memanggilnya dengan nilai yang berbeza dan merekodkan output menggunakan kaedah isEmptyObject , yang membolehkan anda menyemak sama ada objek itu kosong.

Mari kita lihat dengan cepat contoh di bawah.

 jQuery.isemptyObject ({});
jQuery.isemptyObject ({"foo": "1"});
Salin selepas log masuk

Seperti yang anda lihat, menggunakan _.isEmpty() sangat mudah.

kesimpulannya

Dalam artikel ini, kami membincangkan beberapa cara yang berbeza untuk memeriksa sama ada objek kosong dalam JavaScript. Semak tutorial kami yang lain mengenai pengaturcaraan JavaScript!

Siaran ini telah dikemas kini dengan sumbangan Neema Muganga.

Atas ialah kandungan terperinci Cara memeriksa sama ada objek kosong di JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apr 04, 2025 pm 02:42 PM

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

Demystifying JavaScript: Apa yang berlaku dan mengapa penting Demystifying JavaScript: Apa yang berlaku dan mengapa penting Apr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Siapa yang dibayar lebih banyak Python atau JavaScript? Siapa yang dibayar lebih banyak Python atau JavaScript? Apr 04, 2025 am 12:09 AM

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Bagaimana untuk mencapai kesan menatal paralaks dan kesan animasi elemen, seperti laman web rasmi Shiseido?
atau:
Bagaimanakah kita dapat mencapai kesan animasi yang disertai dengan menatal halaman seperti laman web rasmi Shiseido? Bagaimana untuk mencapai kesan menatal paralaks dan kesan animasi elemen, seperti laman web rasmi Shiseido? atau: Bagaimanakah kita dapat mencapai kesan animasi yang disertai dengan menatal halaman seperti laman web rasmi Shiseido? Apr 04, 2025 pm 05:36 PM

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Evolusi JavaScript: Trend Semasa dan Prospek Masa Depan Evolusi JavaScript: Trend Semasa dan Prospek Masa Depan Apr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Adakah JavaScript sukar belajar? Adakah JavaScript sukar belajar? Apr 03, 2025 am 12:20 AM

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Bagaimana untuk menggabungkan elemen array dengan ID yang sama ke dalam satu objek menggunakan JavaScript? Bagaimana untuk menggabungkan elemen array dengan ID yang sama ke dalam satu objek menggunakan JavaScript? Apr 04, 2025 pm 05:09 PM

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Apr 04, 2025 pm 02:06 PM

Terokai pelaksanaan fungsi seretan panel dan drop panel seperti VSCode di bahagian depan. Dalam pembangunan front-end, bagaimana untuk melaksanakan vscode seperti ...

See all articles