你有没有在看别人写的JavaScript代码时,对着满屏的 a、b、fn1 这样的名字抓耳挠腮?或者自己写代码时随便起了个名字,过两天回头看完全想不起这变量是干啥用的?
其实,给变量和函数起名字不是「随便取」,而是一门需要认真对待的「技术活」。好的名字能让代码像「自说明书」一样,一看就懂;差的名字则会让代码变成「密码本」,连自己都破译不了。
今天我们就来聊聊JavaScript中变量名和函数名的命名规则和命名规范,帮你写出让人眼前一亮的代码。
一、先搞懂:哪些名字是「法律不允许」的?
在JavaScript里,给变量或函数起名字就像给新生儿上户口——有些规则是「硬性规定」,违反了代码直接报错。我们先把这些「红线」列出来:
1. 名字里只能有这些字符
合法的变量名/函数名可以包含:
- 字母(a-z,A-Z,不区分大小写但区分具体字母,比如
age和Age是不同的) - 数字(0-9)
- 下划线(
_)和美元符号($)
注意:数字不能放在名字的最开头!比如 123user 或 $2024price 是合法的,但 user123 合法,123user 不合法(会被浏览器报错「无效标识符」)。
2. 绝对不能和「保留字」重复
JavaScript有一批「内置关键词」,它们是语言本身的功能指令(比如 var 用来声明变量,function 用来定义函数,if 用来做条件判断)。这些词就像「注册商标」,你不能用它们来当变量名或函数名。
举个反例:
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 会被视为两个完全不同的变量。
举个例子:
let age = 20;
let Age = 25;
console.log(age); // 输出20(和Age没关系)
所以起名字时要注意大小写的一致性,避免自己混淆。
二、再聊聊:什么样的名字是「大家喜欢」的?
满足了「法律要求」只是基础,真正优秀的名字能让代码「会说话」。这里有几个被前端圈广泛认可的「命名规范」,新手直接照着做就对了。
1. 用「有意义的词」,拒绝「无意义的符号」
变量名和函数名应该像「标签」一样,直接说明它的用途。
反面案例:
let a = 18; // a是啥?年龄?身高?完全看不懂
let fn = function() { ... }; // fn是function的缩写,但具体功能呢?
正面案例:
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秒钟想想:「如果三个月后我再看到这个名字,还能立刻知道它是干啥的吗?」—— 养成这个习惯,你的代码会越来越「专业」。
毕竟,代码写出来是给人看的,偶尔是给机器执行的。好的名字,是对自己和团队最大的负责。
希望这篇文章能帮你理清变量名和函数名的命名逻辑。如果还有其他疑问(比如「能不能用中文命名?」),欢迎在评论区留言讨论~
💬 评论
加载中...