| 特性 | var | let | const |
|---|---|---|---|
| 作用域 | 函数作用域或全局作用域 | 块级作用域 | 块级作用域 |
| 变量提升 | 完全提升(声明和赋值) | 部分提升(只提升声明,未赋值) | 部分提升(只提升声明,未赋值) |
| 重复声明 | 可以在同一作用域重复声明 | 不可以在同一作用域重复声明 | 不可以在同一作用域重复声明 |
| 重新赋值 | 可以重新赋值 | 可以重新赋值 | 不可以重新赋值(但对象属性可以修改) |
变量提升:在底部声明或者赋值的变量,会自动移动到顶部,供下面使用这个变量,但值为undefined
| 特性 | var | let | const |
|---|---|---|---|
| 作用域 | 函数作用域或全局作用域 | 块级作用域 | 块级作用域 |
| 变量提升 | 完全提升(声明和赋值) | 部分提升(只提升声明,未赋值) | 部分提升(只提升声明,未赋值) |
| 重复声明 | 可以在同一作用域重复声明 | 不可以在同一作用域重复声明 | 不可以在同一作用域重复声明 |
| 重新赋值 | 可以重新赋值 | 可以重新赋值 | 不可以重新赋值(但对象属性可以修改) |
变量提升:在底部声明或者赋值的变量,会自动移动到顶部,供下面使用这个变量,但值为undefined