笔记: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);

小结:

  1. 只是一种函数的简写,可用可不用,看程序猿心情;
  2. 类似于匿名函数,在某些情况下使用,可减少代码量。

参考:

根据开课吧《ECMAScript6.0》视频教程整理。

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值