变量声明

使用建议:

  1. 默认使用const
  2. 当需要修改时改为let
  3. 尽量不在使用var

let var const

  1. var 是函数级别作用域,可以再同一作用域重复声明同一变量

    var的问题:

    • 函数级作用域,表示在block外(例如if语句、for语句等)外访问内部声明的变量,会经常声明出全局变量
    • var声明的变量可重复声明 会导致难以定位的bug

    因此推荐使用let

  2. let 是block级别函数作用域

  3. const 声明常量 不能修改值类型 但是可以修改引用类型

代替立即执行函数

//用var声明私有变量时 只能用立即执行函数
(function () {
    var name = "fk"
})()

//用let或者const时 只需要一个块即可
{
    let name = "lyy"
}

变量提示

var存在变量提升 可以在变量为声明之前访问和使用变量

let虽然也存在变量提升 但是在变量在声明之前是处于临时性死区 在声明之前使用会报错