1.基本介绍
ES6的全称是ECMAScript6.0
ECMAScript6.0是JavaScript语言的一个标准,于2015年6月正式发布。目标是“使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
2.为什么要学习ES6
ES6的出现,给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率。流行的js框架都使用了大量的ES6语法。
3.let和const
var,let,const(常量)都可以用来定义变量。
3-1 let变量
与var类似,用来定义变量。
区别:
- 块级作用域(第三种作用域)。let所声明的变量,只在let命令所在的代码块内有效。
- let没有 “变量提升”现象。
- 不会成为window对象的属性。
- 暂时性死区(TDZ)
3-1-1
在ES5中没有块级作用域,只能通过function来划分作用域。在ES6中实现了块级作用域,具体来说,就是通过let关键字实现的。


3-1-2
{}具有划分作用域的能力


经典例子








3-1-3 let没有“变量提升”现象


3-1-4 不会成为window对象的属性


3-1-5 暂时性死区(TDZ)
ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。说白了,就是要先定义变量,然后才能使用。




3-1-6 不能重复定义


3-2 const常量
3-2-1 const声明常量,栈区的值不能改变。


3-2-2 必须立即初始化


3-3-3 栈区的值不能改动,保存至堆区的值可以改动

