Apakah Perbezaan Antara Null dan Tidak Ditentukan dalam JavaScript?

Apakah Perbezaan Antara Null dan Tidak Ditentukan dalam JavaScript?

Panduan ini akan melihat perbezaan antara batal dan tidak ditentukan nilai dalam JavaScript. Mengetahui perbezaan antara dua nilai ini penting untuk melakukan debug dan membuat kod bebas pepijat.





papan kekunci komputer riba dell tidak berfungsi windows 10

Gunakan konsol penyemak imbas anda untuk mengikuti atau mencuba contoh kod yang dibincangkan dalam panduan ini.





Membandingkan Kesamaan Nilai Nol dan Tidak Ditentukan

Dalam JavaScript, batal adalah nilai primitif yang digunakan untuk menandakan sengaja adanya nilai objek, sedangkan tidak ditentukan adalah nilai primitif yang bertindak sebagai placeholder untuk pemboleh ubah yang belum diberi nilai.





Batal dan tidak ditentukan nilai sama jika dibandingkan dengan menggunakan operator kesetaraan JavaScript.

Gunakan pengendali persamaan ( == untuk membandingkan jika batal dan tidak ditentukan nilai sama dalam JavaScript.



Buka konsol penyemak imbas anda dan masukkan kod berikut, kemudian tekan Masukkan.

null == undefined

Hasilnya akan memberi anda sesuatu yang kelihatan seperti ini, nilai boolean yang dikembalikan benar bermaksud kedua-dua nilai itu sama.





Ketahui Lebih Lanjut: Cara Menyatakan Pemboleh ubah dalam JavaScript

Perbandingan Persamaan Ketat

JavaScript juga mempunyai pengendali identiti ( === ), juga dikenali sebagai pengendali kesetaraan selain operator persamaan ( == )





Pengendali identiti berusaha lebih jauh dengan memeriksa sama ada jenis nilai yang dibandingkan adalah sama. Ini pada dasarnya bermaksud bahawa walaupun dua nilai sama, mereka mungkin tidak sama atau sama persis jika jenis yang mendasarinya berbeza.

Untuk menguji kesamaan yang ketat, gunakan tanda tiga sama sama seperti di bawah.

null === undefined

Hasil perintah di atas akan memberi anda nilai boolean salah Dengan kata lain, kedua-dua nilai itu tidak sama walaupun sama.

Mengetahui Jenis Null dan Tidak Ditentukan

Gunakan fungsi JavaScript terbina dalam jenis() untuk mengetahui jenis nilai yang mendasari. Fungsi mengambil satu parameter nilai yang jenisnya ingin anda cari.

Berkaitan: Lembaran Menipu JavaScript Terunggul

typeof(null)

Nilai nol adalah jenis objek seperti yang anda lihat dari output di bawah.

Menjalankan ujian serupa di tidak ditentukan nilai akan memberi anda hasil daripada tidak ditentukan .

typeof(undefined)

Bekerja Dengan Nombor

Untuk mengetahui lebih banyak perbezaan, jalankan ujian nombor batal dan tidak ditentukan nilai. Sekiranya nilai adalah nombor, ini menunjukkan bahawa kita dapat menjalankan operasi berangka di atasnya.

Terdapat dua cara utama untuk menguji apakah nilai adalah nombor dalam JavaScript.

1. Menggunakan isFinite () fungsi — jika nilai yang diuji adalah nombor, fungsi akan kembali benar ; jika tidak ia kembali salah .

2. Menggunakan isNaN () fungsi - jika nilai yang diuji adalah nombor, maka ia akan kembali salah ; jika tidak ia kembali benar .

Catatan : isNaN kependekan dari 'is Not a Number'.

Untuk memastikan perkara mudah, panduan ini hanya akan menggunakan isFinite () berfungsi untuk menguji apakah nilainya adalah nombor, tetapi jangan ragu juga untuk mencuba isNaN () fungsi. Kedua fungsi ini mengambil nilai yang anda mahu jalankan ujian nombor sebagai parameter.

isFinite(null)

Hasilnya adalah benar , bermaksud batal adalah nilai jenis nombor dalam JavaScript. Manakala, menjalankan ujian yang sama pada tidak ditentukan kembali salah .

isFinite(undefined)

Jenis Paksaan

JavaScript adalah bahasa yang diketik secara longgar, dan oleh kerana itu, ketika melakukan operasi matematik JavaScript secara automatik akan mengubah hasilnya menjadi jenis yang diinginkannya.

Sayangnya penukaran automatik ini, yang biasanya disebut sebagai pemaksaan jenis, dapat menimbulkan banyak kejutan.

Jalankan operasi angka berikut batal dan tidak ditentukan di konsol penyemak imbas anda.

1 + null 3 * null 1 + undefined 3 * undefined;

Seperti yang anda lihat, anda boleh menjalankan beberapa operasi angka di batal nilai kerana ia adalah nombor yang tidak mempunyai nilai. Oleh itu, ia diperlakukan seperti sifar. Perhatikan bahawa batal tidak sama dengan sifar dalam JavaScript, tetapi entah bagaimana ia diperlakukan seperti itu dalam kes ini.

Operasi berangka pada tidak ditentukan nilai hasil dalam mengembalikan NaN Nilai (Bukan Nombor). Sekiranya tidak dirawat dengan berhati-hati, anda boleh mengalami ini semasa menjalankan.

Mengelakkan Runtime Bugs

Pemahaman yang baik mengenai batal dan tidak ditentukan nilai sangat penting untuk mengelakkan bug runtime dalam kod pengeluaran anda. Bug yang berkaitan dengan tidak ditentukan nilai sukar untuk disebat dan sebaiknya dielakkan.

Pertimbangkan untuk menggunakan TypeScript untuk kod yang ditaip kuat yang menyusun JavaScript. Dalam TypeScript kod anda diperiksa pada waktu kompilasi untuk meminimumkan bug runtime dalam kod pengeluaran anda.

Berkongsi Berkongsi Tweet E-mel Topik-topik yang berkaitan
  • Pengaturcaraan
  • JavaScript
  • Petua Pengekodan
Mengenai Pengarang Baik untuk pergi(36 Artikel Diterbitkan)

Mwiza mengembangkan perisian secara profesional dan menulis secara meluas mengenai Linux dan pengaturcaraan front-end. Beberapa minatnya merangkumi sejarah, ekonomi, politik & seni bina perusahaan.

Lagi Dari Mwiza Kumwenda

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan