箭头函数没有变量提升,因为它通过 const 或 let 声明,属于暂时性死区(tdz)机制。在代码执行到声明语句之前访问该变量会抛出 referenceerror。

普通函数与箭头函数的提升差异是什么
普通函数使用 function 关键字声明时存在变量提升,而箭头函数不存在。这意味着普通函数可以在定义前调用,但箭头函数必须在定义后调用。

function normalFunc() {
return 'normal';
}
const arrowFunc = () => 'arrow';
console.log(normalFunc()); // 输出: normal
// console.log(arrowFunc()); // 报错: ReferenceError预期结果:
1. normalFunc() 正常返回字符串。
2. 若取消注释第二行调用,将抛出 ReferenceError。
立即学习“Java免费学习笔记(深入)”;
块级作用域对箭头函数有什么影响
由于箭头函数通常用 const 声明,它受块级作用域限制。在块级作用域外无法访问该函数。

if (true) {
const blockArrow = () => 'block';
}
// console.log(blockArrow()); // 报错: ReferenceError预期结果:
1. blockArrow 仅在 if 块内有效。
2. 在块外尝试访问会抛出 ReferenceError。
未初始化时的箭头函数状态如何
在声明但未赋值阶段,箭头函数处于暂时性死区。此时访问变量会导致错误。


















