写代码时,你有没有过这样的经历:调试半天发现程序卡在一个奇怪的地方,最后翻来覆去一看,某个变量明明声明了却压根没用上?这种“变量声明后未使用”的情况,在日常开发中太常见了,尤其在快速迭代或者临时测试的场景下。
为什么会出现这种问题?
比如你在写一个处理用户登录的函数,顺手声明了个 tempUserData 准备做中间处理,结果写着写着换了思路,直接调接口返回了结果。这时候 tempUserData 还留在那儿,安安静静躺在代码里,像个没人认领的行李箱。
function handleLogin(userInfo) {
let tempUserData; // 声明了但没使用
return fetch('/api/login', {
method: 'POST',
body: JSON.stringify(userInfo)
});
}
这看起来无伤大雅,但在团队协作或长期维护的项目中,这类“僵尸变量”会一点点积累,变成阅读障碍。新人接手代码时可能会疑惑:这个变量到底有没有用?是不是我漏看了什么逻辑?
编辑器早就看不下去了
主流开发工具比如 VS Code、WebStorm 其实都会对“变量声明后未使用”给出提示。你会发现变量名底下有一条淡淡的灰色波浪线,鼠标移上去提示“'tempUserData' is declared but its value is never read.”。这不是报错,但就像衣服上的一粒饭渍,不致命,但挺碍眼。
这类警告属于 Lint 工具的基础检查项。ESLint 的 no-unused-vars 规则就是干这个的。如果你的项目配置了代码检查流程,提交前 CI 系统甚至可能直接拦下含有这类问题的代码。
临时变量怎么处理?
有时候你确实需要临时声明一个变量用于调试,比如打印一下中间值。这时候又不想被 Lint 报警,可以加个注释说明:
function calculateTotal(items) {
const totalPrice = items.reduce((sum, item) => sum + item.price, 0);
// eslint-disable-next-line no-unused-vars
const debugMode = true; // 临时开启调试
return totalPrice;
}
但更推荐的做法是干脆删掉,等真要用的时候再加。毕竟现代编辑器撤销快捷键(Ctrl+Z)比写注释还快。
别小看这点“整洁”
代码整洁不是为了讨好强迫症,而是降低理解和维护成本。一个项目里如果到处都是声明不用的变量、注释掉的代码块、重复的导入,开发者的心力就会被一点点耗尽。就像家里堆满杂物的房间,找东西越来越费劲。
下次写完一段逻辑,花三秒钟扫一眼变量列表。那些孤零零躺着、没被读取过的变量,该删就删。让你的代码像刚整理过的书桌——清爽,一眼看清重点。