1. 程式人生 > >ES6函式的擴充套件特性

ES6函式的擴充套件特性

ES6函式添加了一些新的特性,極大的方便了開發者的程式設計體驗:箭頭函式的簡潔、預設的引數…

函式的預設引數

增加了預設引數(值或表示式)特性,讓我們可以進一步思考函式的輸入input(arguments),而不是簡單的依照理所當然的方式去假定引數型別並據此執行操作程式碼(避免一些諸如... can not read property of undefined的錯誤)

  • 不能使用const、let對引數二次宣告
  • 引數的預設值是一種惰性計算(不傳參時才會計算預設值)

解構賦值與預設引數

有了預設引數為何還需要解構賦值?我們為了不拘泥於引數地順序,往往傳入一個物件引數,但是這樣我們就需要在宣告函式裡寫註釋引數的結構

,繁瑣!

  • 解構賦值清晰地羅列了引數資訊
  • 解構賦值也可設定預設值
let { x,y=6 } = { x:1 };
x;//1
y;//2

function getName({ id = 0,sex } = {}){
	//id 預設為0,
	//sex沒有預設
}

rest引數

將引數抽象為一個陣列集合,讓開發者更好地處理過多引數地情況

function getName(...rest){
	console.log(Array.isArray(rest))
}
getName();// true

箭頭函式

這個比使用function 宣告簡潔了不少。

  • 不可作為建構函式new 例項化物件
  • 不存在arguments
  • 不可做為Generator函式