Trong JavaScript, `null` là một giá trị đặc biệt biểu thị "không có" hoặc "tham chiếu rỗng". Dưới đây là chi tiết cách sử dụng nó:
1. Định nghĩa và kiểu dữ liệu
- Kiểu dữ liệu: `null` là một kiểu dữ liệu cơ bản, nhưng `typeof null` trả về `"object"` (vấn đề lịch sử). Nó được xem như điểm kết thúc của chuỗi nguyên mẫu đối tượng.
- Nghĩa: Biểu thị rõ ràng rằng biến không trỏ đến bất kỳ đối tượng nào, hoặc do lập trình viên thiết lập giá trị "rỗng".
2. Sử dụng phổ biến
Khởi tạo biến
let vehicle = null; // Sau này có thể gán giá trị cho đối tượng
vehicle = { model: "Tesla" };
Tự giải phóng tham chiếu đối tượng
let info = fetchData(); // Giả sử trả về một đối tượng lớn
// Sau khi sử dụng xong, giải phóng
info = null;
Giá trị trả về của hàm
function searchItem(itemId) {
if (!itemExists(itemId)) return null;
// Trả về đối tượng nếu tồn tại
}
Tham số của hàm
function displayItem(item) {
if (item === null) {
console.log("Không có mục nào");
}
}
displayItem(null);
3. Sự khác biệt với `undefined`
| **Đặc tính** | **`null`** | **`undefined`** |
|---|---|---|
| **Nguồn gốc** | Lập trình viên gán trực tiếp | Biến chưa được gán, hàm không có giá trị trả về |
| **Kiểu dữ liệu** | `typeof null` → `"object"` | `typeof undefined` → `"undefined"` |
| **Tương đương** | `null == undefined` → `true` | `null === undefined` → `false` |
4. Lưu ý
Kiểm tra kiểu dữ liệu
if (value === null) {
// Xử lý trường hợp null cụ thể
}
Bộ lọc JSON
JSON.stringify({ a: null, b: undefined }); // '{"a":null}'
Xử lý tham số mặc định
function welcome(user = "Guest") {
console.log(`Xin chào, ${user}!`);
}
welcome(null); // "Xin chào, null!"
welcome(undefined); // "Xin chào, Guest!"
5. Ví dụ mã nguồn
// Khởi tạo biến
let gadget = null;
gadget = { type: "Smartphone" };
// Giải phóng tham chiếu
gadget = null;
// Hàm trả về null
function findElement(id) {
return document.getElementById(id) || null;
}
// Truyền null vào tham số
setTimeout(() => {}, null); // Tham số thứ hai thường bị bỏ qua, nhưng truyền null để chỉ ra giá trị trống