var,let , const
es6发布很长时间了,其中let,const已经常用于我们的前端代码中,今天就主要类介绍,var,let const 三者之间的区别
**
1,let的用法类似与var,但是所声明的变量只在let命令所在的代码块内有效
**
在代码块中声明a,b两个变量后,在外面调用,let声明的a变量报错,var声明的b变量返回了正确的值,可以看出let所声明的变量只在它的代码块中有效
**
2,let不存在变量提升
**
如同所示
var命令会发生变量提升的现象,也就是在声明之前使用,值为undefined,而let命令不存在变量提升的现象,let所声明的变量一点要在声明后使用,否则便会报错。
3,暂时性死区
ES6明确规定如果区块内存在let和const命令,则这个区块对这些命令声明的变量从一开始就形成封闭区域,只要在声明之前使用这些变量就会报错
**
4,不允许重复声明
**
let不允许在相同作用域内重复声明同一个变量
**
5,const
**
const声明一个只读的常量,一旦声明常量的值就不会改变
如图所示
const声明的常量不得改变值,这意味着const一旦声明常量,就必须立即初始化,不能留到以后赋值
上面的代码表明const只声明不赋值会报错;
以上就是let和const的内容,可以看出,let和const大大改进了ES5的变量机制,使得JS更严谨和规范,随着ES6支持程度的提高,我们应该开始习惯let和const的使用了。