JavaScript 保留关键字
什么是保留关键字
JavaScript 把一批单词留作自己使用,比如 var、if、for、new,这些称为关键字(keyword);另有一些单词暂时没用到,但语言规定"留给将来",称为未来保留字。它们的共同点是:不能用作变量名、函数名或标识符,否则会报语法错误。
常用关键字一览
按用途分类最方便记忆:
| 类别 | 关键字 |
|---|---|
| 声明 | var、let、const、function、class、import、export |
| 流程控制 | if、else、switch、case、default、break、continue、return |
| 循环 | for、while、do |
| 异常 | try、catch、finally、throw |
| 其他 | new、delete、typeof、instanceof、in、of、this、void、yield、await |
错误示范与正确写法
把关键字当变量名会立刻报语法错误:
// var if = 1; // 语法错误:if 是关键字
// var class = "x"; // 语法错误:class 是关键字
var myIf = 1; // 正确:换个名字即可
var className = "x"; // 正确
console.log(myIf, className); // 输出:1 x
对象属性名虽然可以是关键字,但为了兼容旧浏览器与易读性,仍建议避免:
var obj = { default: 1, new: 2 }; // 部分场景可用,但不推荐
console.log(obj["default"]); // 输出:1
字面量 true / false / null
true、false、null 也属于"保留字",只能作为值使用,不能当变量名:
var isOk = true; // 正确:作为值
var nothing = null; // 正确:作为值
// var true = 1; // 错误:不能给 true 赋值
console.log(isOk, nothing); // 输出:true null
严格模式下的额外保留字
在 "use strict" 严格模式下,implements、interface、package、private、protected、public、static、yield 等也被禁止用作标识符:
"use strict";
// var static = 1; // 严格模式下报错
var staticValue = 1; // 正确
console.log(staticValue); // 输出:1
编写建议
起名时避开所有保留字,方法很简单:不用单个英文单词做变量名,多用有含义的组合词,如 userName、myClass、totalCount,既避免冲突又表意清晰。
小结
保留关键字是语言留给自身的单词,不能当标识符使用。按用途分组记忆、起名时避开单词本身、注意严格模式的额外限制,就能避免这类低级语法错误。