摘要:JavaScript 中的关键字、保留字是语言内置的特殊词汇,不能拿来做变量名、函数名。本篇简单分清二者概念,了解命名时的避坑要点,减少莫名其妙的报错。
一、什么是标识符
我们写 JS 代码时,给变量、函数、对象属性起的名字 就叫标识符。 标识符不能随便乱写,有一套语法规则,最重要一条:不能使用 JS 的关键字和保留字作为标识符,否则直接语法报错。
二、关键字(Keyword)
关键字:JS 语言本身占用,禁止用作标识符
关键字是 JS 现在版本已经在使用,具备特殊功能的单词。 这些单词已经被语言本身征用,有固定作用,绝对不能拿来当变量名、函数名。
举一些日常高频见到的关键字: var、let、const、if、else、for、while、function、return、switch、break、continue、try、catch等。
❌错误示范:
// var是关键字,不能做变量名
let var = 10; // Uncaught SyntaxError语法错误
浏览器会直接抛出语法错误,代码直接无法运行。
三、保留字(Reserved Word)
保留字:未来版本可能升级为关键字,不建议使用
保留字当前版本暂时还没有实际功能,但是 JS 规范预留下来,留给后续新版本使用。
虽然部分浏览器写代码不会立刻报错,但是强烈不建议拿保留字命名。 一旦 JS 版本更新,该词升级为关键字,旧项目直接就会出现语法崩溃,留下隐藏 bug。
部分保留字举例: class早期属于保留字,ES6 之后正式升级成关键字;还有诸如enum等预留词汇。
// 不推荐,enum属于保留字
let enum = 10;
四、关键字 vs 保留字简单对比
表格
| 类型 | 特点 | 后果 |
|---|---|---|
| 关键字 | JS 当前正在使用,有固定语法功能 | 拿来命名 → 直接报错,代码跑不起来 |
| 保留字 | 为 JS 未来版本预留,当前无功能 | 部分环境不报错,但有版本升级后崩溃风险,禁止使用 |
共同原则:写代码命名变量、函数,两类词汇全部避开。
五、拓展:JS 标识符基础命名规范
除了避开关键字、保留字,日常命名遵守下面规则:
-
可以使用字母、数字、下划线
_、美元符号$ -
不能以数字开头
-
区分大小写:
Name和name是两个不同变量 -
推荐驼峰命名法:
userInfo、userName,见名知意// ✅合法
let user_name = "张三";
let $num = 100;
let userInfo = "李四";// ❌非法,数字开头
let 123num = 666;
六、开发小结
- 如果遇到莫名其妙的
SyntaxError语法报错,先检查是不是变量名不小心写了关键字。 - 不用死记全部关键字列表,编辑器(VSCode)会高亮提示,高亮的 JS 内置单词就不要拿来命名。
- 关键字直接禁用;保留字虽然部分环境不会报错,但同样坚决不用,防止后续版本迭代出隐性 bug。
- 变量命名尽量语义化,优先见名知意,不要图省事乱起名。