ES6系列-let和const变量
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
首先说说var声明变量的弊端。
1.可以重复声明
2.无法限制修改
3.没有块级作用域
4.变量会被提升
let
let不可以重复声明。
1  | let a = 2;  | 
如果重复声明会直接报错。
let有块级作用域。
1  | {  | 
会报错 a is not defined。
let不存在变量提升。
1  | console.log(a)  | 
会打印出 a undefined b is not defined。
const
const常量是不可以被修改的。
1  | const a = 'lanpangzhi';  | 
修改会直接报错,但是如果是对象数据类型可以在对象下添加新得属性。
1  | const a = {};  | 
这样写不会报错,常量a存的是一个地址,这个地址指向一个对象。不可变的只是这个地址,即不能把a指向另一个地址,但对象本身是可变的,所以依然可以为其添加新属性。
const不可以重复声明。
1  | const a = 2;  | 
如果重复声明会直接报错。
const有块级作用域。
1  | {  | 
会报错 a is not defined。
const不存在变量提升。
1  | console.log(a)  | 
会打印出 a undefined b is not defined。
例子
让i从0输出到5,按顺序输出,es5版本需要闭包来实现。
1  | for (var i = 0; i <= 5; i++){  | 
es6版本
1  | for (let i = 0; i <= 5; i++){  | 
let和const解决了var的弊端,瞬间开发变简单了很多。