Keduanya mewakili "tidak ada nilai," tetapi dengan niat dan asal yang berbeda.
Keduanya mewakili "tidak ada nilai," tetapi dengan niat dan asal yang berbeda.
undefined: ketiadaan nilai, biasanya diatur oleh mesin JavaScript — variabel yang dideklarasikan-tetapi-tidak-ditugaskan, properti objek yang hilang, parameter fungsi yang tidak Anda berikan, atau fungsi tanpa return.null: nilai "kosong" yang disengaja yang Anda berikan untuk mengatakan "dengan sengaja tidak ada di sini."let a; // undefined — declared, not assigned
const obj = {};
obj.missing; // undefined — property doesn't exist
function f() {}
f(); // undefined — no return
const b = null; // null — you chose to empty it
null == undefined; // true — loose equality treats them as equal
null === undefined; // false — different types
typeof undefined; // "undefined"
typeof null; // "object" (historical bug)
const value = input ?? "default"; // defaults on EITHER null or undefined
user?.address?.city; // optional chaining — undefined if any link is null/undefined
Gunakan null untuk menghapus nilai dengan disengaja (misalnya "tidak ada pengguna yang dipilih"), dan perlakukan undefined sebagai "belum ditetapkan." Operator ?? (nullish coalescing) dan ?. (optional chaining) menangani keduanya sekaligus, itulah sebabnya mereka sangat banyak digunakan.
Perpustakaan pertanyaan wawancara IT dengan jawaban mendetail — dari Junior hingga Senior.
Donasi