JavaScript 中变量命名的最佳实践

全篇大概1500 字(含代码),建议阅读时间5分钟。


1. 避免使用 var 关键字:过时的产物

在现代 JavaScript 中,我们通常避免使用 var,而是选择 letconst,它们提供更可预测和块范围的行为,使您的代码更易于理解和维护。

javascript 复制代码
// ✅
let name = '小那同学'; 
const PI = 3.14;

// ❌ 
var age = 30; // 不推荐使用 var

2. let:可以改变的变量

使用 let 关键字来声明稍后可能需要在代码中更改其值的变量。

javascript 复制代码
// ✅
let score = 0; 
score += 10;
// ❌
// 不推荐使用 var
var score = 0; 
score += 10; 

3. const:不变值的常量

如果有一个在整个程序中不应该改变的值,请使用 const 关键字。

javascript 复制代码
// ✅
const MAX_USERS = 100;
// ❌
var maxUsers = 100; 
// 不推荐使用 var

4. 清晰度和描述性

变量命名的主要目的是清楚地传达变量的用途和内容。选择不言自明且准确反映其存储数据的名称。

javascript 复制代码
// ✅
let firstName = '小那同学';
let totalPrice = 29.99; 
// ❌
let x = 5; 
let atemp = 'temp'; // 不清晰

5. 使用有意义的词语

避免使用缩写或过于技术性的术语,因为这可能会让其他程序员感到困惑。

javascript 复制代码
// ✅ 
let customerName = '小那同学'; 
let orderStatus = 'shipped'; 

// ❌
let custNm = 'JD';
let ordStempRec = 'record'; 

6. 驼峰式命名规范

JavaScript 中变量最广泛采用的命名约定是驼峰式命名法。

javascript 复制代码
// ✅ 
let fullName = '小那同学'; 
let dateOfBirth = '1990-01-01'; 
// ❌
let full_name = '小那同学'; 
let dateofbirthshipping_address = '1990-01-01'; 

7. 大写常量

如果有保存常量值且不应修改的变量,请用大写字母声明它们,并用下划线分隔单词。

javascript 复制代码
// ✅ 
const TAX_RATE = 0.07; 
const API_KEY = '123456'; 
// ❌
const taxRate = 0.07; 
const apiKeymaxAttempts = '123456';

8. 避免使用单字母变量

虽然单字母变量可能有利于快速迭代,但它们通常会降低代码的可读性。

javascript 复制代码
// ✅
let isActive = false; 
let canEdit = true; 
// ❌
let isActive = false, canEdit = true; // 不推荐

9. 使用复数数组

如果您的变量代表一个数组,请使用复数名称来表示它包含多个元素。

javascript 复制代码
// ✅
let isActive = false; 
let canEdit = true; 
// ❌
let isActive = false, canEdit = true; // 不推荐

10. 前缀布尔变量

对于布尔变量,请考虑使用诸如 ishascan 之类的前缀来明确其用途。

javascript 复制代码
// ✅ 
let isActive = false; 
let canEdit = true; 
// ❌
let isActive = false, canEdit = true; // 不推荐

11. 范围感知命名

如果您使用特定范围内的变量,请考虑添加指示其范围的前缀或后缀。

javascript 复制代码
// ✅
let isActive = false; 
let canEdit = true; 
// ❌ 
let isActive = false, canEdit = true; // 不推荐

12. 单独申报

为了提高可读性,最好将每个变量单独一行声明。

javascript 复制代码
// ✅
let isActive = false; 
let canEdit = true; 
// ❌
let isActive = false, canEdit = true; // 不推荐
相关推荐
lolo大魔王8 分钟前
Gin 框架响应格式与 HTML 模板渲染完整实战教程
前端·html·gin
llz_1122 小时前
web-第二次课后作业
前端·后端·web
vipbic7 小时前
别再把“做个H5”挂嘴边了:这个词,官方压根就没有定义过
前端
ZC跨境爬虫9 小时前
跟着 MDN 学CSS day_39:(Flexbox 弹性盒子核心机制)
前端·css·ui·html·tensorflow
小陈同学呦9 小时前
前端如何处理订单状态导航的数据竞态问题
前端·javascript
开发者每周简报9 小时前
网海三部曲·无名宗师传
javascript·人工智能
喵个咪9 小时前
GoWind Toolkit 前端代码生成|Vue3(ElementPlus/Vben)、React(AntDesign)全自动一键生成教程
前端·vue.js·react.js
摆烂大大王11 小时前
玩转 OpenClaw:用 TaskFlow + Heartbeat 打造自动化工作流
前端·人工智能·自动化
zhangxingchao11 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端
梦想的颜色11 小时前
TypeScript 完全指南(上):从零开始掌握类型系统
前端·typescript