• ES6新特性-函数的简写(箭头函数)


    通常函数的定义方法

    var fn = function(...){
        ......    
    }
    //例如:
    var add = function(a,b){
        return a+b;
    }
    
    //或者:
    function fn(...){
        ......
    }
    //例如:
    function add(a,b){
        return a+b;
    }

    简写方法速记

    将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。

    function add(a,b){
        return a+b;
    }
    //简写为:
    (a,b)=>{//删掉了function和函数名
        return a+b;
    }
    
    var add = function(a,b){
        return a+b;
    }
    //简写为:
    var add = (a,b)=>{ //删掉了function
        return a+b;
    }

    附加规则

    1. 当函数参数只有一个时,括号可以省略;但是没有参数时,括号不可以省略。
    2. 函数体(中括号)中有且只有一行return语句时,中括号及return 关键字可以省略。

    新旧函数定义的对比

    无参数函数

    let fn = function(){
    return 'helloWorld';
    }
    
    //简写为:
    let fn = ()=>{//但是没有参数时,括号不可以省略
    return 'helloWorld';
    }
    //根据规则二,简写为:
    let fn = ()=>'helloWorld';

    一个参数的函数

    let fn = function(a){
        return a;
    }
    
    //简写为:
    let fn = (a)=>{
        return a;
    }
    //根据规则一,还可以简写为:
    let fn = a=>{
        return a;
    }
    //根据规则二,还可以简写为:
    let fn = a=>a;

    多个参数的函数

    let fn = function(a,b){
        return a+b;
    }
    //简写为:
    let fn = (a,b)=>{//多于一个参数,圆括号不可省略
        return a+b;
    }
    //根据规则二,还可以简写为:
    let fn = (a,b)=>a+b;

    函数体代码多于一行

    let fn = function(){
        console.log('hello');
        console.log('world');
        return 'helloWorld';
    }
    //简写为:
    let fn = ()=>{
        console.log('hello');
        console.log('world');
        return 'helloWorld';
    }

    函数返回json对象时

    let fn = function(){
        return {"a":5};
    }
    
    //简写为:
    //let fn = ()=>{"a":5};这是错误的
    //应简写为:
    let fn = ()=>({"a":5});//注意{}外的圆括号。

    实例

    //排序方法1
    let arr = [3,6,2,1];
    let arr2 = arr.sort(function(a,b){
        return a-b;
    });
    alert(arr2);
    
    //排序方法2
    let arr3 = [939,23,0,-1,94];
    let arr4 = arr3.sort((a,b)=>a-b);
    alert(arr4);
  • 相关阅读:
    unicode编码 utf8
    贝壳IM群聊优化之路
    企点电话SDK的日志追踪系统 https://mp.weixin.qq.com/s/uipndTV8W5s1_qose8MrQQ
    解码未知键的 json 字符串
    内部类
    牛客IOI周赛23普及组全题解
    20以内加减随机试卷
    2929百万级电商平台即时通讯系统设计实践(2)_ev
    org.objectweb.asm.ClassWriter.<init>(I)V异常 .
    VMware安装与卸载CentOS7 详细步骤版本2
  • 原文地址:https://www.cnblogs.com/bing0709/p/10762116.html
Copyright © 2020-2023  润新知