Skip to the content.

var const let 的比较

  1. var: 带有变量提升,可在变量声明前使用,但是使用的时候值为undefined
  2. let: 声明块级作用域的可变变量
  3. const: 声明会计作用域的常量

暂时性死区

当块级作用域下存在let声明的变量与var声明的变量同名,块级作用域中的改变量使用的是或let声明的变量,同时,在声明该变量之前,块级作用域内改变量都是不可用的。

使用或let声明变量时,只要变量在还没有声明完成前使用,就会报错

var tmp = 123

{
  console.log(tmp) // 会报错
  // 在let tmp声明之前使用tmp的话会报错
  let tmp = 456
  console.log(tmp) // 456
}