javascript变量声明应优先const、次选let、禁用var,命名清晰、声明靠近使用处、作用域最小化;const用于不重赋值场景,let用于需变更场景,避免var的提升与作用域问题。

JavaScript 中规范的变量声明,核心是统一使用 const 优先、let 次之、避免 var,并配合清晰的命名、合理的声明位置和明确的作用域控制。
优先使用 const,仅在值需重新赋值时用 let
这能体现变量的不可变意图,减少意外修改,提升代码可读性和安全性。
-
推荐:
const userName = 'Alice';(字符串、对象引用、函数等不打算重赋值的都用 const) -
推荐:
let retryCount = 0;(循环计数、状态标记等确实会变更的才用 let) -
避免:
var isActive = true;(var 存在变量提升、作用域混乱问题)
声明靠近首次使用处,避免顶部堆叠
把变量声明放在它真正被用到的代码块附近,而不是函数/模块开头集中声明。这样逻辑更内聚,也便于后续重构或删除。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
推荐: 在 if 块内声明仅用于该分支的变量:
if (user) { const displayName = user.name || user.email; console.log(displayName); } -
推荐: 循环中声明迭代相关变量:
for (let i = 0; i - 避免: 函数一开头就写十几行 const/let,其中有些变量可能只在末尾几行才用
命名语义化,区分类型与用途
变量名应准确表达其含义和用途,避免缩写歧义,对布尔值、集合、异步结果等有约定俗成的前缀/后缀习惯。
-
布尔值用 is/has/can 等前缀:
const isLoading = false;、const hasPermission = true; -
数组/集合加复数或 List/Items 后缀:
const users = [];、const selectedItems = new Set(); -
Promise 或异步结果加 Async/Result 后缀(可选但推荐):
const userDataAsync = fetchUser(); -
避免模糊命名:
const d = new Date();→ 应为const currentDate = new Date();
按作用域分组声明,不跨作用域混用
每个块级作用域({ } 内)只声明本作用域需要的变量,不把外层变量“提前”声明到内层,也不在条件块外引用条件内声明的变量。
-
正确:
function handleForm() { const formData = getFormData(); if (formData.isValid) { const sanitizedData = clean(formData); submit(sanitizedData); } } -
错误:
let sanitizedData; if (formData.isValid) { sanitizedData = clean(formData); } submit(sanitizedData);(sanitizedData 可能为 undefined,且语义断裂) - 错误: 在 if 外访问 if 内 const 声明的变量(会报 ReferenceError)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










