变量声明
📅2026-06-15T07:50:37.000Z
变量提升
JS 执行前会先扫描代码,把变量 / 函数声明提前到当前作用域顶部
var
声明全局变量(仅在当前文档中)
会挂在到windows对象
let
块作用域
const
块作用域,声明常量,声明时必须赋值
总结
| 特性 | var | let | const |
|---|
| 作用域 | 函数 / 全局,无块级 | 块级作用域 | 块级作用域 |
| 变量提升 | 提升,初始 undefined | 提升,存在 TDZ | 提升,存在 TDZ |
| 重复声明 | 允许 | 不允许 | 不允许 |
| 重新赋值 | 允许 | 允许 | 不允许(引用类型例外) |
| 声明时必须赋值 | 不需要 | 不需要 | 必须 |
| 全局变量挂 window | 是 | 否 | 否 |