let const var 的区别

135 阅读1分钟

let和const

  1. 不会变量提升,只存在于声明的内部环境中
  2. 存在暂时性死区,如果要调用和let/const相关的函数,必须先声明再调用,否则会报错,但无论是否声明,相关变量已经存在于该内部环境中
  3. const不可以重复声明
  4. 不会挂载到顶层(window)之下
  5. 块级作用域

const在声明后需要立刻赋值

let可以在声明后,再赋值

var的怪异

  1. var声明后在其内部环境,和全局作用域都可以被访问
  2. 捕获变量会发生变化
for(var=0;i<10;++i){
    settimeout(function(){
        consloe.log(i)
    },1000)
};//打印全部为10