Dalam JavaScript, null
dan undefined
sering dianggap mirip karena keduanya merepresentasikan "ketiadaan nilai". Namun, keduanya memiliki perbedaan penting baik dari sisi makna, tipe data, maupun penggunaannya. Memahami perbedaan ini sangat penting untuk menulis kode JavaScript yang bersih dan bebas dari bug.
Pengertian undefined
undefined
adalah nilai default dari sebuah variabel yang belum diinisialisasi. Ini juga merupakan nilai yang dikembalikan oleh fungsi yang tidak memiliki pernyataan return
, atau ketika objek tidak memiliki properti yang diminta.
Contoh:
let a;
console.log(a); // undefined
function test() {}
console.log(test()); // undefined
let obj = {};
console.log(obj.name); // undefined
Pengertian null
null
adalah nilai yang secara eksplisit ditetapkan oleh programmer untuk menunjukkan bahwa suatu variabel tidak memiliki nilai. Ini digunakan saat kita ingin secara sadar menyatakan bahwa variabel tersebut “kosong” atau “tidak bernilai”.
Contoh:
let a = null;
console.log(a); // null
Perbedaan Utama
Aspek |
undefined |
null |
Ditentukan oleh |
JavaScript (otomatis) |
Programmer (eksplisit) |
Tipe data |
undefined |
object |
Makna |
Tidak ditetapkan / tidak tersedia |
Secara sengaja dikosongkan |
Kegunaan |
Default untuk variabel tak bernilai |
Menandakan tidak ada nilai secara eksplisit |
Perbandingan Nilai
Loose Equality (==
)
console.log(null == undefined); // true
Strict Equality (===
)
console.log(null === undefined); // false
Ini menunjukkan bahwa meskipun keduanya dianggap "tidak bernilai", null
dan undefined
adalah tipe data yang berbeda.
Kapan Menggunakan null
dan undefined
?
- Gunakan
undefined
untuk membiarkan JavaScript menyatakan bahwa suatu variabel belum memiliki nilai.
- Gunakan
null
jika kamu ingin mengosongkan nilai variabel secara eksplisit, misalnya saat mereset form atau menghapus referensi objek.
Kesimpulan
null
dan undefined
sama-sama merepresentasikan ketiadaan nilai, namun dengan cara yang berbeda. undefined
lebih mencerminkan “belum ditentukan”, sementara null
berarti “tidak ada secara sengaja”. Memahami perbedaan ini membantu kamu menulis kode JavaScript yang lebih jelas dan terstruktur.