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吧!