箭头函数

92 阅读1分钟

基本定义:

一个变量 一个表达式返回值
  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]]