# JavaScript变量名和函数名命名规则和命名规范:起个「好记又合法」的名字有多重要?
你有没有在看别人写的JavaScript代码时,对着满屏的 `a`、`b`、`fn1` 这样的名字抓耳挠腮?或者自己写代码时随便起了个名字,过两天回头看完全想不起这变量是干啥用的?
其实,给变量和函数起名字不是「随便取」,而是一门需要认真对待的「技术活」。好的名字能让代码像「自说明书」一样,一看就懂;差的名字则会让代码变成「密码本」,连自己都破译不了。
今天我们就来聊聊JavaScript中变量名和函数名的**命名规则**和**命名规范**,帮你写出让人眼前一亮的代码。
---
## 一、先搞懂:哪些名字是「法律不允许」的?
在JavaScript里,给变量或函数起名字就像给新生儿上户口——有些规则是「硬性规定」,违反了代码直接报错。我们先把这些「红线」列出来:
### 1. 名字里只能有这些字符
合法的变量名/函数名可以包含:
- 字母(a-z,A-Z,不区分大小写但区分具体字母,比如 `age` 和 `Age` 是不同的)
- 数字(0-9)
- 下划线(`_`)和美元符号(`$`)
**注意**:数字不能放在名字的最开头!比如 `123user` 或 `$2024price` 是合法的,但 `user123` 合法,`123user` 不合法(会被浏览器报错「无效标识符」)。
### 2. 绝对不能和「保留字」重复
JavaScript有一批「内置关键词」,它们是语言本身的功能指令(比如 `var` 用来声明变量,`function` 用来定义函数,`if` 用来做条件判断)。这些词就像「注册商标」,你不能用它们来当变量名或函数名。
举个反例:
```javascript
var var = 10; // 报错!var是保留字,不能当变量名
function function() { ... } // 报错!function也是保留字
```
常见的保留字包括:`var`、`let`、`const`、`function`、`if`、`else`、`for`、`while`、`return`、`true`、`false`、`null`、`undefined` 等等(具体可以查MDN文档,但记住「别用语言本身的功能词」这个原则就行)。
### 3. 区分大小写
JavaScript是「大小写敏感」的语言。比如 `userName` 和 `Username` 会被视为两个完全不同的变量。
举个例子:
```javascript
let age = 20;
let Age = 25;
console.log(age); // 输出20(和Age没关系)
```
所以起名字时要注意大小写的一致性,避免自己混淆。
---
## 二、再聊聊:什么样的名字是「大家喜欢」的?
满足了「法律要求」只是基础,真正优秀的名字能让代码「会说话」。这里有几个被前端圈广泛认可的「命名规范」,新手直接照着做就对了。
### 1. 用「有意义的词」,拒绝「无意义的符号」
变量名和函数名应该像「标签」一样,直接说明它的用途。
**反面案例**:
```javascript
let a = 18; // a是啥?年龄?身高?完全看不懂
let fn = function() { ... }; // fn是function的缩写,但具体功能呢?
```
**正面案例**:
```javascript
let userAge = 18; // 直接说明这是「用户年龄」
let calculateTotalPrice = function() { ... }; // 直接说明这是「计算总价」的函数
```
哪怕名字长一点,也比让人猜强。比如 `studentScoreList`(学生分数列表)比 `slist` 好一万倍。
### 2. 动词 vs 名词:函数名用「动作」,变量名用「事物」
这是个被广泛接受的「潜规则」:
- **变量名**:通常代表「一个东西/数据」,所以用名词(或名词短语)。比如 `userName`(用户名)、`productList`(商品列表)。
- **函数名**:通常代表「一个动作/操作」,所以用动词(或动词短语)。比如 `getUser()`(获取用户)、`calculateSum()`(计算总和)。
这样一看名字,就能快速判断它是「存数据的容器」还是「干活的工具」。
### 3. 驼峰命名法:让名字更「连贯」
JavaScript中最常用的命名格式是「驼峰命名法」,分为两种:
#### 小驼峰(变量/函数名首选)
第一个单词首字母小写,后面每个单词的首字母大写,中间没有空格。比如:
- 变量名:`studentName`(学生姓名)、`orderTime`(下单时间)
- 函数名:`getUserName()`(获取用户名)、`filterProductList()`(过滤商品列表)
#### 大驼峰(构造函数/类名首选)
每个单词的首字母都大写,通常用于定义构造函数(后续学类的时候会用到)。比如:
- `function Person(name) { ... }`(表示「人」的类)
- `class Animal { ... }`(表示「动物」的类)
**为什么用驼峰?** 因为它比下划线(比如 `user_name`)更简洁,比全连写(比如 `username`)更易读,是前端圈的「通用语言」。
### 4. 避免缩写,除非「地球人都知道」
新手最容易犯的错误是过度缩写,比如把 `total` 写成 `tot`,把 `message` 写成 `msg`。虽然代码长度变短了,但可读性会大幅下降。
**例外情况**:如果某个缩写是行业公认的(比如 `id` 代表「唯一标识」,`url` 代表「统一资源定位符」),可以放心用。但像 `usr`(用户)、`prdt`(产品)这种不常见的缩写,尽量避免。
---
## 三、总结:好名字的核心就一句话
变量名和函数名的命名规则可以总结为:
**合法是底线(不违反语法规则),清晰是王道(让别人一眼看懂)。**
下次写代码时,不妨多花3秒钟想想:「如果三个月后我再看到这个名字,还能立刻知道它是干啥的吗?」—— 养成这个习惯,你的代码会越来越「专业」。
毕竟,代码写出来是给人看的,偶尔是给机器执行的。好的名字,是对自己和团队最大的负责。
---
希望这篇文章能帮你理清变量名和函数名的命名逻辑。如果还有其他疑问(比如「能不能用中文命名?」),欢迎在评论区留言讨论~
JavaScript变量名和函数名命名规则和命名规范:起个「好记又合法」的名字有多重要?
1 分钟阅读
109 字
如果文章对您有帮助,欢迎支持作者继续创作