ES6相关知识(5)函数新特性--箭头函数

1.  函数参数默认值,注意:具有默认值的参数要写到后边。

正常情况下,我们

举一个例子吧:

function add(n1, n2) {
        return n1+n2;
    }
    console.log(add(1,3));

结果肯定是4;

如果我们不给n1赋值,结果就是NaN

这里我们可以添加一个默认值给n1和n2

function add(n1=3, n2=3) {
        return n1+n2;
    }
    console.log(add());

如果不传参数,就会以默认值的形式输出,结果:

2. args参数是一个纯数组对象,可以替代类数组argumens,

首先,使用arguments写1到5的加法。结果是15。

function add() {
        let sum = 0;
        for (let i=0; i<arguments.length; i++) {
            sum += arguments[i];
        }
        return sum;
    }
    console.log(add(1,2,3,4,5));

我们可以使用args来快速实现,结果也是15;

     function add(...args) {
            let sum = 0;
            args.forEach(function(item) {
                sum += item;
            })
            return sum;
        }
        console.log(add(1,2,3,4,5));

 3. 箭头函数

作用简化回调函数 箭头函数中的this是函数声明时的所在对象

简化回调函数,体现在:

let sum = function(item1, item2) {
        return item1+item2;
    }

可以简写为:

let sum = (item1, item2) => item1+item2;

经典的,随机函数:

let rand = function(min, max) {
        Math.round(Math.random() * (max-min) + min);
    }

简写为:

let rand = (min, max) => Math.round(Math.random() * (max-min) + min);

典型的冒泡排序sort():

let arr = [1,5,-56,-99,34,23,57,-4,0];
    arr = arr.sort(function (a,b) {
        return a-b;
    })
    console.log(arr);

可以简写为:

let arr = [1,5,-56,-99,34,23,57,-4,0];
    arr = arr.sort((a,b) => a-b);
    console.log(arr);

结果依然为:

 

 箭头函数中的this是函数声明时的所在对象,体现在:

举个例子:从函数里边调用obj,如果使用this直接调用,调用的是window,而不是函数声明时所在对象

let obj = {
        a:1,
        b:2,
        fun: function() {
            setTimeout(function() {
                console.log(this);
            },100)
        }
    }
    obj.fun();

 结果:

如想调用obj就加上:let that = this;

let obj = {
        a:1,
        b:2,
        fun: function() {
            let that = this;
            setTimeout(function() {
                console.log(that);
            },100)
        }
    }

 结果为

使用箭头函数很容易实现:并且,this的指向就是函数声明所在对象。

let obj = {
        a:1,
        b:2,
        fun: function() {
            setTimeout(() => {
                console.log(this);
            }, 100);
        }
    }

箭头函数若执行多行语句需要加上花括号:

就是复杂化随机函数,更加鲜明

let rand = (min, max) => {
        let n = Math.random() * (max-min) +min;
        n = Math.round(n);
        return n;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值