js中var、let和const区别
var
使用var声明的变量存在变量提升的情况
使用var,我们能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明
let
不存在变量提升
1
2
console.log(a) // 报错ReferenceError
let a = 2
这表示在声明它之前,变量a是不存在的,这时如果用到它,就会抛出一个错误
let 不允许在相同作用域中重复声明
const
const声明一个只读的常量,一旦声明,常量的值就不能改变
const一旦声明变量,就必须立即初始化,不能留到以后赋值
const不存在变量提升
| var | let | const | |
|---|---|---|---|
| 变量提升 | 存在 | 不存在 | 不存在 |
| 暂时性死区 | 不存在 | 存在 | 存在 |
| 块级作用域 | 不存在 | 存在 | 存在 |
| 重复声明 | 允许 | 不允许 | 不允许 |
| 修改声明的变量 | 允许 | 允许 | 不允许 |
本文由作者按照
CC BY 4.0
进行授权