ECMAScript2015也叫es6,jacascript的2015年修訂版
????es6加入了許多新的元素,為了讓js看起來更像是更規(guī)范的語言。首先,最顯著的變化,或者說最能感受到的改變,就是聲明變量的方式,以往的js由于是弱類型語言的關(guān)系,聲明變量只有一個關(guān)鍵字 var 這個關(guān)鍵字能夠聲明所有類型的變量,在es6里面,聲明變量的關(guān)鍵字有 let和const,let關(guān)鍵字聲明的變量具有塊級作用域,這也是解決閉包問題的一個方案,使用let關(guān)鍵字聲明變量;const關(guān)鍵字聲明的變量具有只讀性,所以在聲明變量之后必須給該變量賦值,一般是用在使用函數(shù)字面量的方式創(chuàng)建函數(shù)體。
? ? 迭代器iterator

? ? ? ? es6的提供了一種遍歷機制接口叫遍歷器,利用了for ?of 語句,能夠遍歷對象,有點類似于增強for循環(huán)(for in語句),迭代器會調(diào)用一個next()方法。
map對象和set對象
? ? for ?of 迭代器可以遍歷map和set對象,set和map對象是es6中加入的對象類型,
set和map是由鍵值對組成的對象,因此,迭代器遍歷該對象之后,可以使用es6中的結(jié)構(gòu)進行數(shù)據(jù)分解。
?解構(gòu)
? ? 解構(gòu)指的是es6中對對象或數(shù)組進行拆分的一種方式,該方式非常的簡潔明了,通過直白的手段解析數(shù)組與對象,形成新的鍵值對;es6允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,也稱模式匹配
若等號左右兩邊不相等,也能完成解構(gòu),但只會匹配一部分的值
例如:
var arr = [1,2,3,4,[5,6];
let [a,b,c,d,e] = arr;
console.log(a) //1
console.log(b) //2
console.log(c) //3
console.log(d) //4
console.log(e) //5
es6嚴格模式
在代碼塊中加
"use strict" 進入嚴格模式
嚴格模式中對語法有諸多限制,一般在測試特定函數(shù)時進入嚴格模式,項目部署上線時一定最好不要使用嚴格模式,容易發(fā)生意想不到的問題。