现代JavaScript变量声明应优先使用let和const,禁用var;声明即初始化并赋予语义化默认值;变量就近首次使用处声明,命名采用小驼峰且体现业务含义,布尔变量加is/has/can前缀。

现代 JavaScript 开发中,变量声明已不再只是“能用就行”,而是要兼顾可读性、可维护性与运行时安全性。核心是用对关键字、写对位置、起好名字——三者缺一不可。
优先使用 let 和 const,彻底弃用 var
var 存在函数作用域提升、允许重复声明、易造成全局污染等问题,不符合现代工程实践要求:
-
const 用于不重新赋值的场景:API 地址、DOM 引用、配置对象、函数定义等。例如:
const API_BASE = 'https://api.example.com'; -
let 用于需要后续修改的变量:循环计数器、状态标记、临时计算结果。例如:
let retryCount = 0; -
禁止隐式声明:像
userName = 'Tom';这类漏掉关键字的写法,在严格模式下直接报ReferenceError,必须杜绝。
声明即初始化,避免留空变量
只写 let userData; 虽语法合法,但容易引发 undefined 相关逻辑错误,也不利于静态分析:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- 推荐写法:
const theme = 'dark';、let isActive = false; - 若初始值不确定,应明确赋予一个语义清晰的默认值,比如空数组
[]、空对象{}或null(需配合类型判断) - 避免把声明堆在函数顶部,而应紧贴首次使用处,缩小作用域范围
命名要准确表达业务含义,不追求简短
变量名不是占位符,而是代码的说明书。现代编辑器自动补全已消除长名负担,重点转向语义明确:
- 用
currentUserName代替name,避免歧义(是当前用户?管理员?还是表单字段?) - 用
ourPlanetName代替planet,强调“我们所在的星球”这一上下文 - 多词组合采用小驼峰(camelCase),首字母小写,后续单词首字母大写,如
userProfileData、isFormValid - 布尔变量建议加
is、has、can等前缀,一眼识别其真假语义
块级作用域内声明,就近原则
let 和 const 天然是块级作用域,要主动利用这个特性控制变量生命周期:
- 在
if、for、switch或任意{}块中声明的变量,外部无法访问,天然防误用 - 例如加载状态处理:
if (loading) { const spinner = document.getElementById('spin'); spinner.classList.add('active'); }——spinner就该只在这个逻辑块里存在 - 不要为了“统一管理”把所有变量提前声明到函数开头,那反而削弱了作用域约束带来的好处
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










