变量命名通常遵循以下规范:

1. 使用有意义的名称

名称应能表达变量保存的内容,避免使用没有语义的名称。

// 不推荐
let a = 20;
let x = "张三";

// 推荐
let userAge = 20;
let userName = "张三";

循环中的临时变量可以适当简短:

for (let i = 0; i < users.length; i++) {
  console.log(users[i]);
}

2. 遵守语言规定

通常需要满足:

  • 只能包含字母、数字、下划线等允许的字符
  • 不能以数字开头
  • 不能使用关键字
  • 区分大小写的语言中,要注意大小写区别
let 2name;   // 错误
let class;   // 可能是关键字
let userName; // 正确

3. 统一命名风格

常见风格包括:

小驼峰命名法 camelCase

常用于 JavaScript、Java、C# 等语言中的普通变量和函数。

let userName;
let orderTotal;
let isLoggedIn;

大驼峰命名法 PascalCase

常用于类、接口、类型等。

class UserProfile {}
class OrderService {}

下划线命名法 snake_case

常用于 Python、数据库字段和部分后端项目。

user_name = "Alice"
order_total = 100

全大写下划线 UPPER_SNAKE_CASE

常用于常量。

const MAX_RETRY_COUNT = 3;
const DEFAULT_TIMEOUT = 5000;

同一个项目中应优先遵守已有代码规范,不要混用多种风格。

4. 布尔变量使用明确前缀

布尔值最好体现“是或否”的含义,常用前缀有:

  • is
  • has
  • can
  • should
  • enable
const isLoading = true;
const hasPermission = false;
const canEdit = true;
const shouldRetry = false;

不推荐:

const status = true;
const user = false;

推荐:

const isActive = true;
const isAdmin = false;

5. 集合变量使用复数或集合含义

数组、列表、集合等应体现多个元素:

const users = [];
const productList = [];
const selectedItems = [];

单个对象使用单数:

const user = {};
const product = {};

不要使用容易混淆的名称:

const data = []; // 含义过于宽泛

可以根据实际内容命名:

const userList = [];
const responseData = {};

6. 名称应避免过长,但不能牺牲可读性

// 过短
const u = getUser();

// 过长
const userInformationDataFromRemoteServer = getUser();

// 合适
const user = getUser();
const remoteUserData = getUser();

一般原则是:在当前作用域内,名称越清晰越好;作用域越小,名称可以越短。

7. 避免使用无意义的名称

不推荐:

let temp;
let thing;
let obj;
let data;
let value;
let result;

这些名称并非绝对不能用,但应尽量说明具体含义:

let temporaryFilePath;
let requestPayload;
let userConfig;
let totalPrice;
let searchResult;

8. 避免仅靠数字区分变量

const user1 = {};
const user2 = {};
const user3 = {};

更好的方式是表达变量之间的关系:

const primaryUser = {};
const secondaryUser = {};
const guestUser = {};

或者使用集合:

const users = [];

9. 缩写要适度

常见、广泛认可的缩写可以使用:

const userId = 1;
const httpClient = {};
const apiUrl = "/users";

不建议使用只有团队少数人理解的缩写:

const usrInf = {};
const procCfg = {};

缩写的大小写也要统一。通常推荐:

userId
httpUrl
parseJson

而不是:

userID
HTTPURL
parseJSON

具体仍以项目已有规范为准。

10. 不要在变量名中重复类型信息

现代语言通常可以通过值、类型声明或上下文理解类型。

// 不推荐
const userString = "Alice";
const userArray = [];
const userObject = {};

// 推荐
const userName = "Alice";
const users = [];
const user = {};

但在某些特殊场景中,类型前缀仍可能有价值,例如:

const rawUserData = "...";
const parsedUserData = {};

11. 常量和可变变量区分清楚

const MAX_PAGE_SIZE = 100; // 常量
let currentPage = 1;       // 会变化的变量

如果语言支持不可变声明,优先使用不可变变量:

const userName = "Alice";

只有确实需要重新赋值时才使用:

let retryCount = 0;
retryCount++;

12. 不要使用容易混淆的字符

尽量避免变量名中混用:

  • l、I、1
  • O、0
  • 大小写差异很小的名称
  • 中文全角字符或特殊符号
const l = 1;
const I = 2;
const one = 1;

常见推荐格式

场景推荐命名
普通变量userName 或 user_name
布尔变量isEnabled、hasPermission
数组users、selectedItems
常量MAX_RETRY_COUNT
类UserService
类型/接口UserConfig
私有字段根据语言规范使用 _name、#name 等
临时循环变量i、index、item

最重要的原则可以概括为:

命名要准确、统一、可读,并且符合项目已有规范。不能为了“看起来规范”而牺牲语义。
最后修改:2026 年 10 月 07 日
如果觉得我的文章对你有用,请随意赞赏!