Javascript標準制定者計劃每年發佈一次,使用年份作為標準的版本。
ES6在2015年發布的,因此又稱ECMAScript2015。
let
- let和var的差別在於,let只在所在程式區塊作用。
|
|
|
|
- var是全域的,所以每次循環,新的i都會覆蓋舊的,最後輸出10。
|
|
- let只在區塊作用,所以輸出6。
const
- const宣告一個唯讀的變數。一旦宣告,變數得值就不能改變。
|
|
- const和let一樣,只在所在程式區塊作用。
|
|
Destructuring 解構
- 從陣列中按照對應位置,對變數給值。
|
|
- 如果解構不成功就等於undefined
|
|
- 也可以從物件解構,變數必須跟屬性同名,沒有順序性
|
|
String extension
includes(), startsWith(), endsWith
|
|
repeat()
- 將原字串重複n次
|
|
padStart(), padEnd()
|
|
template String
- 更簡潔美觀的在字串中賦予值
- 使用`標示,可以定義多行字串,並使用${ 變數 }串接字串
|
|
Math extension
Math.trunc()
- 去除小數部分,回傳整數
|
|
Math.sign()
- 判斷正數、負數或是零
|
|
Array extension
Array.from()
- 把物件轉成陣列
|
|
- 還可以接受第二個參數,類似map對於每個元素作處理後放回原陣列
|
|
includes()
- 陣列是否包含給定的值
|
|
function extension
預設值
|
|
rest
- 形式為”…變數”,取得函式
|
|
將陣列加入另一陣列結尾
|
|
箭頭函數
- 無須輸入function, return, 括號及分號
- 如要傳入多個參數,必須用小括號包住
|
|
|
|
|
|
object extension
簡潔表示法
|
|
|
|
Object.assign()
- 用於物件的合併
|
|
- 複製物件
|
|
for-of
- 與forEach()不同的是可以使用break, continue, return
|
|
- 可以使用解構(Destrucuring)
|
|
Generators
- 有類似return的語法: yield
- function僅能return一次,而Generators可以yield多次
- Generators執行過程中,遇到yield會暫停,之後可恢復執行狀態
|
|
next()
- next也可以傳入參數
|
|
import
- 載入被導入的模組
|
|
export
- ES6中所有模組都是私有的,如果要給其他模組使用,必須export
|
|