var,let , const

es6发布很长时间了,其中let,const已经常用于我们的前端代码中,今天就主要类介绍,var,let const 三者之间的区别
**

1,let的用法类似与var,但是所声明的变量只在let命令所在的代码块内有效

**
var,let , const
在代码块中声明a,b两个变量后,在外面调用,let声明的a变量报错,var声明的b变量返回了正确的值,可以看出let所声明的变量只在它的代码块中有效
**

2,let不存在变量提升

**
如同所示var,let , const
var,let , const
var,let , const
var,let , const
var命令会发生变量提升的现象,也就是在声明之前使用,值为undefined,而let命令不存在变量提升的现象,let所声明的变量一点要在声明后使用,否则便会报错。
3,暂时性死区
var,let , const
var,let , const
var,let , const
var,let , const
ES6明确规定如果区块内存在let和const命令,则这个区块对这些命令声明的变量从一开始就形成封闭区域,只要在声明之前使用这些变量就会报错
**

4,不允许重复声明

**
var,let , const
var,let , const

let不允许在相同作用域内重复声明同一个变量
**

5,const

**
const声明一个只读的常量,一旦声明常量的值就不会改变

如图所示
var,let , const
var,let , const
const声明的常量不得改变值,这意味着const一旦声明常量,就必须立即初始化,不能留到以后赋值
var,let , const
var,let , const
上面的代码表明const只声明不赋值会报错;

以上就是let和const的内容,可以看出,let和const大大改进了ES5的变量机制,使得JS更严谨和规范,随着ES6支持程度的提高,我们应该开始习惯let和const的使用了。