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
?
string
undefined
primitive
object