ES6 導入了模組系統的支援,它採用了 CommonJS 與 AMD 的優點,在編譯時進行靜態加載,而且可以使用於瀏覽器與伺服器端。概念上是將一個大程序拆分成互相依賴的小文件,需要用到時就拼裝起來使用,這對開發大型或複雜的專案是很重要的。
這是 ES6 中一種新的資料結構,每組資料都有對應的 key 值與 value 值,所以 Map 在意義上類似於物件。
而 key 值的範圍不限於字串,可以是各種類型的值(包括 number、array、object、function、symbol…等等)都可以當作 key,是一種更完善的 Hash 結構實現。
這是 ES6 中一種新的原始資料類型,表示獨一無二的值,Symbol 的值通過Symbol
函數生成,可以保證不會與其他屬性名或數值產生衝突,所以很適合用來代替傳統定義常數內容值的方式。
ES6 中的class
類別,它是效仿其他程式語言擁有物件導向(OOP)的概念,取代需要原型 prototype 的操作,因為寫法更簡潔與易於理解,用來代替 javascript 傳統建構物件的形式。
物件在 JavaScript 中是非常重要的資料結構,而在 ES6 之後擴展了它的語法結構,讓表示法變得更簡單易懂,還增加了屬性名稱的動態改變。
它是 ES6 標準裡其中非常受歡迎的新語法,允許使用 =>
(箭頭) 來定義函數,比起一般函數可以用更簡短的語法來表示,可以讓程式碼的可閱讀性提高。
JavaScript 終於讓函數也能有預設值了,在 ES6 中為函數加入了預設參數 (Default parameters) 與 Rest 參數的語法,在設計或建構時能更直覺的加入參數值了。
ES6 加入了新的運算子...
Spread Operator,簡化了展開陣列的過程,應用上真的非常廣,像是取值、複製、合併、轉換型態、取代舊式 API…等等,這些都改善或簡化了 JavaScript 的邏輯程序,讓程式有了更多元的發展。
ES6 導入了樣板文字串 Template literals 是為了增強字串的表示方式,還能直接填入變數與表達式,可以更方便地輸出想要的文字組合了。
ES6 新的迭代迴圈方法,基本上可以取代傳統上陣列的forEach()
方法,另外這跟for...in
迴圈很相似,但這兩者的用法是不同的,以下會多舉例比較他們之間的關係。