基本定义:
一个变量 一个表达式返回值
let say = e => e;
say("你好");
//等同于
let say=function(e){return e}
空参数
let fn=()=>6
//等同于
let fn=function(){retrun 6}
多参数
let fn=(num1,num2)=>num1+num2
//等同于
let fn=function(num1,num2){return num1+num2}
函数体中多条语句
使用{}将函数体包围起来,并用return语句返回
let fn=(a,b)=>{a+=1 return a+b}
//等同于
let fn=function(a,b){a+=1 return a+b}
多行返回不可以不使用return
let fn = (a, b) => {
a += 1;
a + b;
};
fn(2,2)//undefined
返回一个对象
箭头函数如果直接返回一个对象,因为是{}会被解析成函数体,所以需要用一个()包起来,否则会报错
let getobj=()=>{id:id,naem:'name'}//会显示语法报错
let obj=()=>({id:id,naem:'name'})//不会报错
箭头函数结合变量结构使用
const fn = ({ a, b }) => a + b;
console.log(fn({ a: 2, b: 2 }));
//等同于
const fn=function(list){
return list.a+list.b
}
console.log(fn({ a: 2, b: 2 }));
简化回调函数
[1,2,3].map(function(x){return x*x})
[1,2,3].map(x=>x*x)
//正常的函数
let val = [1, 2, 3, 4];
val.sort(function (a, b) {
return b - a;
});
val.sort((a, b) => b - a);
console.log(val);
rest参数与箭头函数结合
let fn=(...res)=>res
fn(1,2,3,4,5)//[1,2,3,4,5]
let fn=(head,...res)=[head,res]
fn(1,2,3,4,5) //[1,[2,3,4,5]]