null: berarti tidak ada nilai;
tidak terdefinisi: mewakili variabel yang tidak dideklarasikan,
atau variabel yang dideklarasikan tetapi tidak diberi nilai,
Atau properti objek yang tidak ada.
Operator == memperlakukan keduanya sama. Jika ingin membedakan keduanya, gunakan operator === atau typeof.
------------ Garis pemisah ketidakjelasan --------------------------------------------
Dalam JavaScript, null dan undefinisi pernah membingungkan. Analisis berikut akan membantu Anda memahaminya dengan lebih jelas (atau membuat Anda semakin bingung):
- null adalah kata kunci; tidak terdefinisi adalah properti objek Global
- null adalah objek (objek kosong, tanpa properti dan metode apa pun); nilai tipe tidak terdefinisi. Coba kode berikut:
document.writeln(typeof null); //return objek
document.writeln(typeof undefinisi); //return undefinisi- Dalam model objek, semua objek adalah turunan dari Object atau subkelasnya, kecuali objek null:
document.writeln(null instanceof Object); "Nilai yang sama (==)" menjadi tidak terdefinisi, namun bukan "nilai kongruen (===)" menjadi tidak terdefinisi:
document.writeln(null == undefinisi); //return true
document.writeln(null === undefinisi); //return false- Baik null maupun undefinisi dapat diubah tipenya menjadi false selama pengoperasian, namun tidak sama dengan false:
document.writeln(!null, !undefinisi); kembali benar, benar
dokumen.writeln(null==false); //mengembalikan salah
dokumen.writeln(tidak terdefinisi==false); //mengembalikan salah