var let const

  1. var 可声明前置
a = 3
var a
var a = 4
  1. let不可声明前置
a = 3 //报错
let a
  1. let不可重复声明
let a = 3
let a = 4  //报错
var a = 5  //报错
  1. 存在块级作用域
for(let i =0; i<3; i++){
  console.log(i)
}
console.log(i) //报错
IIFE的替换

(function(){
  var a = 1
}())
{
  let a = 1
}

暂时性死区(TDZ):在let声明变量之前都是该变量的死区,在死区内该变量不可使用

  1. const 声明的常量不可改变
const a = 1
a = 2 //报错
const obj = {a: 1}
obj.a = 2   //没问题
obj = {a: 2}  //报错
  1. 适用于let的同样适用于const

你可能感兴趣的:(var let const)