簡單語法
//相當於:(參數1, 參數2, …, 參數N) =>{ return 表達式; }
(argument1, argument2, ... argumentN) => {
// function body
}
案例:
var add = (a,b) => {
var num1 = a+b;
var num2 = a-b;
return num1+num2;
}
console.log(add(6,1));
如果函數體只有一句代碼,大括號可以不要,不需要寫return語句
var add = (a,b) => a+b
console.log(add(6,1));
//如果要加大括號要寫成
//var add = (a,b) => {return a+b}
如果沒有參數可以寫成
()=>{}
案例
var fn =() => console.log('哈哈');
fn()
如果只有一個參數,可以省略括號
parameters => { statements }
案例
var fn = a => a+10;
console.log(fn(5));;
const getFirst = array => array[0];
高級語法
//加括號的函數體返回對象字面表達式:
參數=> ({foo: bar})
//支持剩餘參數和默認參數
(參數1, 參數2, ...rest) => {函數聲明}
(參數1 = 默認值1,參數2, …, 參數N = 默認值N) => {函數聲明}
案例
(name, description) => ({name: name, description: description});
注意點:
箭頭函數不能用new
var Person = (name, age) => {
this.name = name
this.age = age
}
var p = new Person('John', 33) // error
不能使用argument
var func = () => {
console.log(arguments)
}
func(55) // Uncaught ReferenceError: arguments is not defined