简单语法
//相当于:(参数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