以下是整理的一个包含 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、最佳实践

  1. 始终启用严格模式

  2. 配置 ESLint 相关规则进行检查

特别注意:JavaScript 保留字不可用作变量名、函数名等标识符,使用前请确认其合法性以避免语法错误。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐