javaScript变量命名规则
一、硬性规则(必须遵守,否则会报错)
这些是 JavaScript 语法强制要求的规则,违反会导致程序无法运行。
-
可以包含的字符:
- 字母(a-z, A-Z)
- 数字(0-9)
- 下划线(
_
) - 美元符号(
$
)
-
首字符规则:
- 不能以数字开头。变量名的第一个字符必须是字母、下划线(
_
)或美元符号($
)。
let name; // ✅ 正确 let _private; // ✅ 正确 let $element; // ✅ 正确 let 2fast; // ❌ 错误:不能以数字开头
- 不能以数字开头。变量名的第一个字符必须是字母、下划线(
-
区分大小写:
myVariable
和myvariable
是两个完全不同的变量。
let caseMatters; let casematters; // 这是另一个变量
-
不能使用保留字/关键字:
- 不能使用 JavaScript 语言本身用于特殊目的的单词,如
let
,if
,for
,function
,return
等。
let let; // ❌ 错误:'let' 是关键字 let class; // ❌ 错误:'class' 是关键字 let if; // ❌ 错误:'if' 是关键字
- 不能使用 JavaScript 语言本身用于特殊目的的单词,如
-
不允许空格和连字符:
- 变量名中不能有空格或连字符(
-
)。
let my variable; // ❌ 错误:包含空格 let my-variable; // ❌ 错误:包含连字符(会被误认为是减法操作)
- 变量名中不能有空格或连字符(
二、软性规则(最佳实践,建议遵守)
这些规则不会导致错误,但遵守它们可以使你的代码更专业、更易读、更易维护,是程序员之间的一种约定。
-
使用驼峰命名法:
- 这是 JavaScript 中最常见的命名约定。
- 小驼峰命名法:第一个单词首字母小写,后续每个单词的首字母大写。用于变量名和函数名。
let firstName; let totalAmount; function calculateTotalPrice() {}
- 大驼峰命名法/帕斯卡命名法:每个单词的首字母都大写。用于类名和构造函数。
class UserAccount {} function Car(model) { // 构造函数this.model = model; }
-
使用有意义的、描述性的名称:
- 变量名应该清楚地表明其用途或包含的数据,避免使用像
a
,x
,temp
这样模糊的名称(除非在非常短的循环中)。 - ** Bad **:
let d; // 做什么的?天数?日期?距离? let val;
- ** Good **:
let elapsedTimeInDays; let currentUser; let isModalOpen;
- 变量名应该清楚地表明其用途或包含的数据,避免使用像
-
布尔变量通常以
is
,has
,can
,should
开头:- 这明确表示该变量是一个布尔值(true/false)。
let isLoggedIn; let hasPermission; let canEdit; let shouldUpdate;
-
常量通常全大写,单词间用下划线分隔:
- 对于在程序运行过程中值永远不会改变的变量(用
const
声明),这是一种常见的约定。
const MAX_USERS = 100; const API_BASE_URL = 'https://api.example.com'; const PI = 3.14159;
- 对于在程序运行过程中值永远不会改变的变量(用
-
避免使用短横线
-
:- 虽然技术上不行,但也要提醒一下,JavaScript 变量名不支持短横线,它只用于 HTML 的属性(如
data-*
)和 CSS 的类名。
- 虽然技术上不行,但也要提醒一下,JavaScript 变量名不支持短横线,它只用于 HTML 的属性(如
三、合法与非法变量名示例
变量名 | 是否合法 | 原因 |
---|---|---|
userName | ✅ | 符合所有规则,且是良好的实践 |
_privateVar | ✅ | 下划线开头常用于表示“私有”成员(但并非真正私有) |
$jQueryObject | ✅ | $ 开头常用于表示 jQuery 或其他库包裹的对象 |
CONSTANT_VALUE | ✅ | 全大写常量,良好实践 |
let | ❌ | 是 JavaScript 的关键字 |
2ndPlace | ❌ | 以数字开头 |
my-variable | ❌ | 包含连字符 |
my variable | ❌ | 包含空格 |
some@email | ❌ | 包含非法字符 @ |
总结
规则类型 | 要求 | 示例 |
---|---|---|
硬性规则 | 字母、数字、_ 、$ 组成,不能数字开头,不能是关键字 | myVar1 , _temp , $item |
软性规则(最佳实践) | 使用小驼峰命名法,名称要有意义,布尔值用 is /has 前缀,常量全大写 | firstName , isActive , MAX_SIZE |
记住:清晰的变量名是代码文档的一种形式,它能极大地提高代码的可读性,让你和你的队友在未来更容易理解和维护代码。