JavaScript memiliki beberapa cara untuk menunjukkan tidak adanya nilai. Halaman ini
menjelaskan dua cara yang paling umum: jenis data null dan undefined.
null
Kata kunci null merepresentasikan ketidakhadiran nilai yang sengaja ditetapkan. null
adalah primitif, meskipun operator typeof menampilkan bahwa null adalah sebuah objek.
Ini adalah error yang telah membawa
dari versi pertama JavaScript dan sengaja ditinggalkan
tidak ditangani untuk menghindari merusak perilaku yang diharapkan di seluruh web.
typeof null
> object
Anda dapat menentukan variabel sebagai null
dengan harapan bahwa hal itu mencerminkan nilai yang ditetapkan padanya
pada skrip atau nilai yang secara eksplisit tidak ada. Anda juga dapat menetapkan null
ke referensi yang ada untuk menghapus nilai sebelumnya.
undefined
undefined adalah nilai primitif yang ditetapkan ke variabel
yang baru saja dideklarasikan, atau ke nilai operasi yang
tidak mengembalikan nilai
yang berarti. Misalnya, ini bisa terjadi
ketika Anda mendeklarasikan
fungsi di konsol developer browser:
function myFunction() {}
> undefined
Fungsi secara eksplisit menampilkan undefined saat pernyataan return-nya
tidak menghasilkan nilai.
(function() {
return;
}());
> undefined
Perbandingan null dan undefined
Meskipun undefined dan null memiliki beberapa fungsi tumpang-tindih, keduanya memiliki
dengan tujuan yang berbeda. Dalam artian yang paling ketat, null mewakili nilai
sengaja didefinisikan sebagai "kosong," dan undefined menunjukkan tidak adanya nilai yang ditetapkan.
null dan undefined sama secara longgar, tetapi tidak sepenuhnya sama.
Operator persamaan longgar memaksa operand dari berbagai jenis ke boolean
nilai, sehingga null dan undefined keduanya menjadi false. Operator persamaan ketat
menganggap operand dari berbagai jenis data tidak sama.
null == undefined
> true
null === undefined
> false
Tidak seperti kata kunci null yang dicadangkan, undefined adalah properti
objek global. Ini adalah desain
keputusan yang dibuat di awal pengembangan JavaScript, dan memungkinkan browser lama
menimpa undefined sepenuhnya. Di {i>browser<i} modern, kita masih
bisa menggunakan
undefined sebagai ID dalam cakupan non-global, yang menggantikan nilainya dalam
cakupan dari pernyataan tersebut. Jangan pernah menggunakan undefined sebagai ID. Ini
dapat menyebabkan perilaku yang tidak terduga dan
membingungkan para pengelola masa depan
codebase Anda.
Menguji pemahaman Anda
Apa yang ditampilkan typeof null?
objectundefinedprimitivestring