You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用var声明箭头函数后用let重声明为何报错?

为什么用var声明箭头函数后,用let重声明会报错?

这是因为JavaScript的变量声明规则限制:

  • 在同一作用域内,let/const 不允许与已存在的 var/let/const 声明同名标识符,不管这个标识符绑定的是箭头函数、普通值还是其他类型。
  • 虽然var允许自身重复声明,但let的规则更严格:它属于块级作用域,存在「暂存死区」,同时完全禁止同一作用域内的重复声明行为——哪怕之前是用var声明的同名变量也不行。

举个和你场景一致的代码示例,运行后会触发和你相同的报错:

// 用var声明绑定了箭头函数的变量
var myFunc = () => { /* 函数逻辑 */ };
// 用let重声明同名变量,直接触发重复声明错误
let myFunc = '其他值';

需要注意的是,这个问题和箭头函数本身无关——哪怕你用var声明的是普通变量,再用let重声明同一个变量,也会报完全相同的错误。

内容的提问来源于stack exchange,提问作者leo_00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:31:34