ES6 -> ECMA标准webpack
ES7 ES8web
最先是由ECMA-262版本实现的3d
----------------------------------------blog
ES6 也称为ES2015,2015年6月份推出来的作用域
每一年的6月份,会发布一个版本for循环
2016年6月 ES6.1变量
2017年7月 ES6.2扩展
-----------------------------------------循环
ESnext 下一代JS语言webpack3
-----------------------------------------
任何人均可以向标准委员会(TC39)要求更改语言标准
提案变成标准,经历5个阶段
Stage 0 展现阶段
Stage 1 征求意见阶段
Stage 2 草案阶段
Stage 3 候选阶段
Stage 4 定案阶段(标准)
ES6环境:webpack3.x
----------------------------------------------------------------------------------------------------------------------------------------------
let 和const
关于定义(声明)变量
----------------------------------------------------------------------------------------
若是声明了变量,那么会出现弹框
------------------------------------------------------------------------------------------------------------------------------------------------------------
若是是这样的话,会出现undefind
为何????
由于此时局部做用域里面有局部变量,有局部变量的话就优先用局部变量,此时会出现一个变量提高现象,也叫预解析。提高后出现以下状况:
此时,a虽然被声明了,可是没有被赋值。因此会出现undefind
---------------------------------------------------------------------------------------------------------------------------------------------------
let 至关于以前的var
const 常量,定义好了它就不能改变了
-----------------------------------------------------------------------------------------------------------------------------------------------------
块级做用域
{
//块级做用域
}
if{ }() for(){} while(){}
----------------------------------------------------------------------------------------------------------------------------------------------------------
1.let不存在变量提高(预解析)这一说。另外,在代码块内,只要是let定义变量,在以前使用,都是报错。必须先定义完,再使用。
2.同一个做用域里,let 不能重复定义变量,可是能够从新赋值(见上面的截图案例)
3.for循环,for循环里面是父级做用域,里面又一个
进一步理解块级做用域:
--------------------------------------------------------------------------------------------------------
TDZ 暂时性死区概念
--------------------------------------------------------------------------------------------------------------
const:特性和let同样
1.const定义变量不能修改
2.const定义完变量,必须有值,不能后赋值,不能修改
3.const也不能预解析
--------------------------------------------------------------------------------------------------------------------
上面的能够扩展,下面的就不行
----------------------------------------------------------------------------------------------------
建议:之后就用let,不要再用var了
若是限制住一个常量,就用const吧!