es6默认参数

1. 默认参数的问题,es5和es6的写法不同,请看下面代码:

// es5的写法
{
    function f(x, y, z) {
        if (y === undefined) {
            y = 7;
        }
        if (z === undefined) {
            z = 42;
        }
        return x + y + z;
    }
    console.log(f(1));
}
// es6的写法
{
    function f1(x, y = 4, z = 12) {
        return x + y + z;
    }
    console.log(f1(1));
}

2. 对于可变参数的问题,es5采用  Array.prototype.slice.call(arguments)来获得 f() 的可变参数列表,arguments指向的是 f() 的参数列表,以数组的形式返回。es6采用扩展运算符的形式来获取函数的参数列表,简化了代码。

// es3,es5可变参数
{
    function f() {
        // 返回可变参数的列表,a是一个数组
        var a = Array.prototype.slice.call(arguments);
        var sum = 0;
        a.forEach(function (item) {
            sum += item + 1;
        });
        return sum;
    }
    console.log(f(1,2,3));
}
// es6的写法
{
    function f3(...a) {
        let sum = 0;
        a.forEach(item=>{
            sum += item + 1;
        });
        return sum;
    }
    console.log(f3(1,2,3));
}

3. 关于扩展运算符的用法,还有很多,比如可以用于数组的合并。

es5合并数组用concat()方法,es6合并数组用扩展运算符来进行合并数组,简化了代码。

{
    // es5合并数组
    var arr = ['hello', 7];
    var arr1 = [1,2].concat(arr);
    console.log(arr1);
}
{
    // es6使用扩展运算符来合并数组
    let arr = ['hello',7];
    let arr1 = [1,2,...arr];
    console.log(arr1);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值