作用域优化时变量提升到底该怎么处理?
我在重构一个老项目,想通过作用域优化减少全局变量污染。但发现把函数内部的变量用 let 提前声明后,有些逻辑反而报错了,比如访问不到之前在 if 块里定义的变量。
我试过把所有变量都提到函数顶部用 let 声明,但又担心这样失去了块级作用域的优势。是不是我理解错了“作用域优化”的正确做法?
function handleData() {
if (condition) {
let temp = fetchData();
process(temp);
}
// 后面还想用 temp,但这里报错
console.log(temp);
}
暂无解答