Panduan ini akan melihat perbedaan antara batal dan tidak terdefinisi nilai dalam JavaScript. Mengetahui perbedaan antara kedua nilai ini penting untuk men-debug dan membuat kode bebas bug.
Gunakan konsol browser Anda untuk mengikuti atau mencoba contoh kode yang dibahas dalam panduan ini.
Membandingkan Kesetaraan Nilai Null dan Tidak Terdefinisi
Dalam JavaScript, batal adalah nilai primitif yang digunakan untuk menandakan ketidakhadiran yang disengaja dari nilai objek, sedangkan tidak terdefinisi adalah nilai primitif yang bertindak sebagai pengganti untuk variabel yang belum diberi nilai.
Batal dan tidak terdefinisi nilainya sama jika dibandingkan menggunakan operator kesetaraan JavaScript.
Gunakan operator persamaan (==) untuk membandingkan jika batal dan tidak terdefinisi nilainya sama dalam JavaScript.
Buka konsol browser Anda dan masukkan kode berikut, lalu tekan Memasukkan.
null == tidak terdefinisi
Outputnya akan memberi Anda sesuatu yang terlihat seperti ini, nilai boolean yang dikembalikan dari benar hanya berarti bahwa dua nilai adalah sama.
Belajarlah lagi: Cara Mendeklarasikan Variabel dalam JavaScript
Perbandingan Kesetaraan yang Ketat
JavaScript juga memiliki operator identitas (), juga dikenal sebagai operator persamaan ketat selain operator persamaan (==)
Operator identitas bekerja lebih keras dengan memeriksa apakah tipe dasar dari nilai yang dibandingkan adalah sama. Ini pada dasarnya berarti bahwa meskipun dua nilai sama, mereka mungkin tidak identik atau benar-benar sama jika tipe dasarnya berbeda.
Untuk menguji kesetaraan yang ketat, gunakan tanda sama dengan tiga kali lipat seperti di bawah ini.
nol tidak terdefinisi
Hasil dari perintah di atas akan memberikan nilai boolean sebesar Salah, Dengan kata lain, kedua nilai tersebut tidak identik meskipun sama.
Menemukan Jenis Null dan Tidak Terdefinisi
Gunakan fungsi JavaScript bawaan jenis() untuk mengetahui jenis nilai yang mendasarinya. Fungsi mengambil parameter tunggal dari nilai yang tipenya ingin Anda temukan.
Terkait: Lembar Cheat JavaScript Ultimate
jenis (nol)
Nilai nol bertipe obyek seperti yang Anda lihat dari output di bawah ini.
Menjalankan tes serupa di tidak terdefinisi nilai akan memberi Anda hasil dari tidak terdefinisi.
jenis (tidak terdefinisi)
Bekerja dengan Angka
Untuk mengeksplorasi lebih banyak perbedaan, lakukan tes angka di batal dan tidak terdefinisi nilai-nilai. Jika suatu nilai adalah angka, itu menyiratkan bahwa kita dapat melakukan operasi numerik padanya.
Ada dua cara utama untuk menguji apakah suatu nilai adalah angka dalam JavaScript.
1. Menggunakan terbatas() fungsi—jika nilai yang diuji adalah angka, fungsi kembali benar; jika tidak, ia kembali Salah.
2. Menggunakan isNaN() fungsi—jika nilai yang diuji adalah angka, maka ia kembali Salah;jika tidak, ia akan kembali benar.
Catatan: isNaN adalah kependekan dari "Bukan Angka".
Untuk mempermudah, panduan ini hanya akan menggunakan terbatas() berfungsi untuk menguji apakah nilainya adalah angka, tetapi jangan ragu untuk juga mencoba isNaN() fungsi. Kedua fungsi ini mengambil nilai yang Anda inginkan untuk menjalankan tes angka sebagai parameter.
terbatas (null)
Hasilnya adalah benar, berarti batal adalah nilai dari jenis jumlah dalam JavaScript. Padahal, melakukan tes yang sama pada tidak terdefinisi kembali Salah.
terbatas (tidak terdefinisi)
Jenis Pemaksaan
JavaScript adalah bahasa yang diketik secara longgar, dan karena itu, saat melakukan operasi matematika, JavaScript akan secara otomatis mengonversi hasilnya ke jenis yang diinginkan.
Sayangnya konversi otomatis ini, yang biasa disebut dengan tipe pemaksaan, dapat membawa banyak kejutan bersamanya.
Jalankan operasi numerik berikut pada: batal dan tidak terdefinisi di konsol browser Anda.
1 + nol
3 * nol
1 + tidak terdefinisi
3 * tidak ditentukan;
Seperti yang Anda lihat, Anda dapat melakukan beberapa operasi numerik pada batal nilai karena itu nomor yang tidak memiliki nilai. Oleh karena itu, diperlakukan seperti nol. Perhatikan bahwa batal tidak sama dengan nol dalam JavaScript, tetapi entah bagaimana diperlakukan seperti itu dalam kasus ini.
Operasi numerik pada tidak terdefinisi hasil nilai dalam mengembalikan NaN (Bukan Angka). Jika tidak ditangani dengan hati-hati, Anda bisa mengalami ini selama runtime.
Menghindari Bug Runtime
Pemahaman yang baik tentang batal dan tidak terdefinisi nilai sangat penting untuk menghindari bug runtime dalam kode produksi Anda. Bug terkait dengan tidak terdefinisi nilai bisa sulit untuk di-debug dan sebaiknya dihindari.
Pertimbangkan untuk menggunakan TypeScript untuk kode yang sangat diketik yang dikompilasi ke JavaScript. Di TypeScript kode Anda diperiksa pada waktu kompilasi untuk meminimalkan bug runtime dalam kode produksi Anda.
- Pemrograman
- JavaScript
- Kiat Pengkodean
Mwiza mengembangkan perangkat lunak berdasarkan profesi dan menulis secara ekstensif di Linux dan pemrograman front-end. Beberapa minatnya termasuk sejarah, ekonomi, politik & arsitektur perusahaan.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Satu langkah lagi…!
Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan.