精通ES6

ES6学习笔记七|函数的扩展

2016-11-02  本文已影响16人  ForeverYoung20

1. 函数参数的默认值

基本用法:


与解构赋值默认值结合使用

下面两种方法的区别:

    //写法一
    function m1({x=0,y=0} = {}) {
        return [x,y];
    }

    //方法二
    function m2({x,y} = {x:0,y:0}) {
        return [x,y];
    }

上面两种方法都对函数的参数设定了默认值,区别是写法一函数参数的默认值是空对象,但是设置了对象解构赋值的默认值;写法二函数参数的默认值是一个有具体属性的对象,但是没有设置对象解构赋值的默认值。

//函数没有参数的情况
m1()  //[0,0]
m2()  //[0,0]

//x和y都有值的情况
m1({x:3,y:8})  //[3,8]
m2({x: 3, y: 8}) // [3, 8]

// x有值,y无值的情况
m1({x: 3}) // [3, 0]
m2({x: 3}) // [3, undefined]

// x和y都无值的情况
m1({}) // [0, 0];
m2({}) // [undefined, undefined]

m1({z: 3}) // [0, 0]
m2({z: 3}) // [undefined, undefined]

参数默认值的位置


函数的length属性

原因:length属性的含义是,该函数预期传入的参数个数。


作用域

2. rest参数

3. 扩展运算符

含义

console.log(...[1,2,3])  // 1  2  3

替代数组的apply方法

上一篇 下一篇

猜你喜欢

热点阅读