JavaScript delete 运算符详解:删除对象属性、变量与内建成员

远山来客
远山来客
发布时间:2026-10-13| 2人浏览过
原创

详细解析 JavaScript 中 delete 运算符的工作原理,重点说明其为何能删除对象属性却难以删除变量。通过 DontDelete 内部属性机制,揭示变量声明、函数定义及未声明赋值在可删除性上的本质区别,提供在不同场景下清理对象数据的有效代码示例。

结果或目标

在 JavaScript 开发中,有时需要从对象中移除特定键值对,或清理不再需要的全局状态。理解 delete 运算符的行为边界,能够避免误删保留的变量或陷入无效的清理尝试。

准备条件

了解 JavaScript 的作用域链、全局对象(如浏览器的 window)以及变量声明的方式(var, let, const)。需知 delete 主要作用于对象属性,而非单纯的变量标识符。

真实操作顺序

第1步:理解核心机制——DontDelete 内部属性

每个对象的属性都拥有若干内部特性(Internal Properties),其中 DontDelete(不可枚举/不可配置)决定了该属性是否可以通过 delete 运算符移除。

  • 可删除:没有设置 DontDelete 的内部属性的属性。
  • 不可删除:设置了 DontDelete 的内部属性的属性。

当使用 var、function 或 let/const 进行声明时,生成的属性会自动附带 DontDelete 标记(在 ES5+ 的严格模式下限制更严)。而通过直接赋值给对象产生的属性,通常不带有此标记,因此可以被删除。

第2步:删除对象中的自有属性

这是 delete 最常见且有效的用法。可以直接从对象实例中移除键值对。

// 创建一个对象
var user = {
  name: "Alice",
  age: 25,
  role: "admin"
};

// 删除 'name' 属性
delete user.name;

console.log(user); // { age: 25, role:
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。