undefined
Giá trị gốc (primitive) chỉ biến đã khai báo nhưng chưa gán giá trị.
var demo;
console.log(demo); // undefined
console.log(typeof demo); // "undefined"
// Kiểm tra biến tồn tại
var age = 10;
if (typeof age !== 'undefined') console.log("Biến tồn tại"); // True
void(0)
Biểu thức dùng toán tử void đánh giá 0 và trả về undefined. Dùng để lấy giá trị undefined đảm bảo (tránh biến toàn cục undefined bị ghi đè – cũ).
<a href="javascript:void(0)">Link không reload</a>
// Tương đương:
<a href="#" onclick="event.preventDefault()">Link</a>
So sánh
| Khía cạnh | undefined | void(0) |
|---|---|---|
| Loại | Primitive value | Biểu thức trả về undefined |
| Dùng để | Kiểm tra biến chưa gán | Ép undefined an toàn, ngăn navigate |
| Ghi đè được? | Có (trong non-strict mode cũ) | Không (toán tử) |
ES5+ strict mode: undefined không ghi đè được. void 0 (không ngoặc) cũng hợp lệ, ngắn hơn.