
以下是整理的一个包含 JavaScript 常见保留字列表:
| 分类 | 关键词 | 说明/注意事项 |
| 语句与流程 | break, case, catch, continue, default, do, else, finally, for, if, return, switch, throw, try, while | 基本控制流关键字,不能作为标识符使用 |
| 运算与类型 | delete, in, instanceof, typeof, void, new, this | 运算符/关键字; this 值取决于执行上下文 |
| 声明 | function, var, let, const | let/const 为块级作用域; const 不可重新赋值 |
| 模块与类 | import, export, class, extends, super | 静态模块语法;类语法糖,仍基于原型链 |
| 旧语法 | with, debugger | with 不建议使用(影响作用域解析); debugger 触发调试 |
| 严格模式保留字 | implements, interface, package, private, protected, public, static, yield | 在严格模式中保留;不要用作变量/参数名 |
| 生成器上下文 | yield | 仅在 function* 内作为关键字使用 |
| 异步上下文 | await | 在模块或 async 函数上下文为保留字;不能作标识符,如 const await = 1 错误 |
| 未来保留 | enum | 可能由引擎保留,避免作为标识符 |
| 受限标识符 | eval, arguments | 严格模式中不可用作变量/参数名 |
| 字面量值 | true, false, null | 值字面量;不可重定义; undefined 非关键字但不建议覆盖 |
| 特殊全局 | NaN, Infinity, undefined | 全局属性;避免命名同名变量覆盖它们 |
JavaScript 命名规范与保留字使用指南:
1、命名冲突规避
错误示例:var class = 1;正确示例:var clazz = 1;
错误示例(模块/严格模式):const await = 123;正确示例:const waitMs = 123;
错误示例(生成器函数内):function* g(){ let yield = 1; }正确示例:function* g(){ const y = 1; }
2、对象属性命名规范
现代引擎支持保留字作为属性名:const o = { default: 1, delete: 2 }
兼容性建议(旧版工具链):const o = { "default": 1 }
3、全局对象保护 禁止覆盖内置全局对象:
const Promise = 1
const Object = {}const JSON = null
4、最佳实践
-
始终启用严格模式
-
配置 ESLint 相关规则进行检查
特别注意:JavaScript 保留字不可用作变量名、函数名等标识符,使用前请确认其合法性以避免语法错误。
341

被折叠的 条评论
为什么被折叠?



