1、箭头函数简介

2、通常函数的定义方法

var fn1 = function(a, b){
  console.log(a + b);
};
fn1(1, 2); // 3

function fn2(a, b){
  console.log(a - b);
}
fn2(2, 1);//1

3、简写写法

//删掉了function
var fn11 = (a, b)=>{
  console.log(a+b);
};
fn11(1, 2); // 3
//删掉了function和函数名,无意义
(a,b)=>{
  console.log(a-b)
}

4、基础语法

    (参数1, 参数2, …, 参数N) => { 函数声明 }

    //相当于:(参数1, 参数2, …, 参数N) =>{ return 表达式; }
    (参数1, 参数2, …, 参数N) => 表达式(单一)

    // 当只有一个参数时,圆括号是可选的:
    (单一参数) => {函数声明}
    单一参数 => {函数声明}

    // 没有参数的函数应该写成一对圆括号。
    () => {函数声明}


        var add = function(a,b){
          return a+b;
        };
        // 即:
        var add = (a,b)=>{
          return a+b
        };
        // 即:
        var add = (a,b)=>a+b;
        ---------------------------------------------------------------------------------------
        var ret = function(a){
          return a+1;
        };
        // 即:
        var ret = a=>a+1;
        ---------------------------------------------------------------------------------------
        var non = function(){
          return 2+1;
        };
        // 即
        var non = ()=>2+1;

        函数体代码多于一行
        let fun1 = function(){
          console.log('1');
          console.log('2');
          return 1+2;
        }
        fun1();
        // 简写为
        let fun2 = ()=>{
          console.log('1');
          console.log('2');
          return 1+2
        }
        fun2();

       函数返回json对象时
        let f1 = function(){
          return {"a":2};
        }
        let f2 = ()=>{"a":2} // 错误
        let f2 = ()=>({"a":2})
        如果要返回一个对象,就要注意,如果是单表达式,这么写的话会报错:
        x => { foo: x }
        因为和函数体的{ ... }有语法冲突,所以要改为:
        // ok:
        x => ({ foo: x })

        实例
        let arr1 = [9,6,1,7];
        let arr11 = arr1.sort(
          function(a,b){
            return a-b;
          }
        )
        console.log(arr11);
        let arr3= [2,3,9,5];
        let arr33 = arr3.sort((a,b)=>a-b)
        console.log(arr33)

5、总结

03-05 18:32