文章

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 进行授权