let命令
用法:let用于声明变量,但是作声明的变量只在let命令所在的代码块内有效。
let a = 123;
特点:不存在变量提升,暂时性死区、不允许重复声明。
暂时性死区:暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。
经典面试题:
for(let i=0;i<5;i++){
setTimeout(function(){
console.log(i);
},0)
};//0,1,2,3,4
for(var i=0;i<5;i++){
setTimeout(function(){
console.log(i);
},0)
}//5,5,5,5,5
const命令
用法:用于声明一个只读的常量,一旦声明,常量的值就不能改变。
注意:在声明的同时要赋值,用const声明的变量不可改动指的是简单类型数据,若声明的是引用类型的数据的话,变量只是指向数据的内存地址,所以这时就可以在不改变它的内存地址的情况下修改其值。
ES6声明变量的6种方法
ES5有两种;var 和 function
ES6: let const import calss