聊一聊前端的常见字 关键字

摘要:JavaScript 中的关键字、保留字是语言内置的特殊词汇,不能拿来做变量名、函数名。本篇简单分清二者概念,了解命名时的避坑要点,减少莫名其妙的报错。

一、什么是标识符

我们写 JS 代码时,给变量、函数、对象属性起的名字 就叫标识符。 标识符不能随便乱写,有一套语法规则,最重要一条:不能使用 JS 的关键字和保留字作为标识符,否则直接语法报错。

二、关键字(Keyword)

关键字:JS 语言本身占用,禁止用作标识符

关键字是 JS 现在版本已经在使用,具备特殊功能的单词。 这些单词已经被语言本身征用,有固定作用,绝对不能拿来当变量名、函数名

举一些日常高频见到的关键字: varletconstifelseforwhilefunctionreturnswitchbreakcontinuetrycatch等。

❌错误示范:

复制代码
// var是关键字,不能做变量名
let var = 10;  // Uncaught SyntaxError语法错误

浏览器会直接抛出语法错误,代码直接无法运行。

三、保留字(Reserved Word)

保留字:未来版本可能升级为关键字,不建议使用

保留字当前版本暂时还没有实际功能,但是 JS 规范预留下来,留给后续新版本使用。

虽然部分浏览器写代码不会立刻报错,但是强烈不建议拿保留字命名。 一旦 JS 版本更新,该词升级为关键字,旧项目直接就会出现语法崩溃,留下隐藏 bug。

部分保留字举例: class早期属于保留字,ES6 之后正式升级成关键字;还有诸如enum等预留词汇。

复制代码
// 不推荐,enum属于保留字
let enum = 10;

四、关键字 vs 保留字简单对比

表格

类型 特点 后果
关键字 JS 当前正在使用,有固定语法功能 拿来命名 → 直接报错,代码跑不起来
保留字 为 JS 未来版本预留,当前无功能 部分环境不报错,但有版本升级后崩溃风险,禁止使用

共同原则:写代码命名变量、函数,两类词汇全部避开。

五、拓展:JS 标识符基础命名规范

除了避开关键字、保留字,日常命名遵守下面规则:

  1. 可以使用字母、数字、下划线_、美元符号$

  2. 不能以数字开头

  3. 区分大小写:Namename是两个不同变量

  4. 推荐驼峰命名法:userInfouserName,见名知意

    // ✅合法
    let user_name = "张三";
    let $num = 100;
    let userInfo = "李四";

    // ❌非法,数字开头
    let 123num = 666;

六、开发小结

  1. 如果遇到莫名其妙的SyntaxError语法报错,先检查是不是变量名不小心写了关键字。
  2. 不用死记全部关键字列表,编辑器(VSCode)会高亮提示,高亮的 JS 内置单词就不要拿来命名。
  3. 关键字直接禁用;保留字虽然部分环境不会报错,但同样坚决不用,防止后续版本迭代出隐性 bug。
  4. 变量命名尽量语义化,优先见名知意,不要图省事乱起名。
相关推荐
东风破_1 小时前
JWT 1:从一个登录请求开始,理解 React 项目里的 API 层与 Mock
前端·后端
东风破_1 小时前
JWT 3:为什么 Token 要放进 Authorization?Axios 拦截器到底解决了什么?
前端·后端
东风破_1 小时前
JWT 5:路由守卫是什么?把整个 JWT 登录鉴权流程串起来
前端·后端
东风破_1 小时前
JWT 2:HTTP 是无状态的,为什么登录成功后还要给 Token?
前端·后端
东风破_1 小时前
JWT 4:Zustand 到底解决了什么?为什么登录状态要放进 Store?
前端·后端
IT_陈寒2 小时前
Vite动态导入差点让我秃头,原来问题出在这
前端·人工智能·后端
草莓橙子碗2 小时前
Claude 使用指南
开发语言·python
longxiaozhang62 小时前
C# Array类:数组其实没那么难
开发语言·c#
白泽_hunter2 小时前
项目里最常见的 5 个 this 指向坑:从规则到实战彻底讲透
前端