Mục đích
Xóa thuộc tính khỏi object. Không xóa biến, không xóa phần tử mảng (chỉ đặt thành undefined/empty slot).
Ví dụ cơ bản
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var cricketer = {
name: "Amit",
rank: 1,
points: 400
};
delete cricketer.rank; // xóa thuộc tính rank
document.getElementById("demo").innerHTML =
cricketer.name + " has " + cricketer.rank + " rank."; // "Amit has undefined rank."
</script>
</body>
</html>
Đặc điểm quan trọng
- Trả về
truenếu xóa thành công (hoặc thuộc tính không tồn tại). - Trả về
falsenếu thuộc tính không thể cấu hình (non-configurable). - Trong strict mode, xóa biến/identifier trực tiếp ném lỗi.
Mảng: delete vs splice
var arr = [1,2,3,4];
delete arr[1]; // [1, empty, 3, 4] – length không đổi, index 1 thành "empty slot"
arr.splice(1,1); // [1,3,4] – length giảm, index dịch chuyển
Khuyên dùng splice/filter để xóa phần tử mảng.
Không thể xóa
- Biến khai báo
var,let,const. - Hàm (function declaration).
- Thuộc tính built-in non-configurable (ví dụ
Object.prototype).