箭头函数可以将函数function (参数) {表达式}简化为:(参数...)=>{表达式...},无需输入function,甚至省略(),{},return。
1、当只有一个参数时,可以写为参数 => 表达式,例如使用map函数遍历一个数组,使每个元素乘2:
var arr = [1, 4, 9, 16];
const map1 = arr.map(x => x * 2); //利用map()遍历数组,传入一个参数当作x,并返回x*2
map中的函数以x为参数遍历每个arr中的元素,*2之后自动返回,形成map1数组
2、当有多个参数时,需要给参数加括号:() =>表达式,例如遍历数组输出索引与值:
let arr=['data0','data1','data2'];
arr.forEach((value,index)=> //通过forEach遍历数组,传入两个参数value与index
console.log(index+':'+value)
);
3、当有多行表达式时,要用{}将函数包含成一块:() =>{},并且使用块语句时,函数不会自动返回值,需要使用return将值返回。
4、JavaScript的{}也可以表示一个对象,当使用箭头函数返回对象时,为了与函数体区别需要将对象用()包含起来:() =>({}),否则会报错,例如在react中使用setState方法,需要返回一个对象:
this.setState((prevState) =>({
flag: !prevState.flag
}))
let fun = a => a+1;
let fun = (a,b,c,d,...n) => a+1;
// 注意箭头函数没有 this , 在其内部使用 this ,取决于当前环境。