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的弊端,瞬间开发变简单了很多。