继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第13天 再学JavaScript ES(6-10)全版本语法大全

檀香
关注TA
已关注
手记 24
粉丝 1
获赞 0

课程名称:再学JavaScript ES(6-10)全版本语法大全
课程章节:2-18 Default Parameters(函数参数的默认值)
课程讲师:快乐动起来呀
课程内容:
ES5中使用arguments来获取函数调用时传入的参数,但是ES6中禁止使用arguments。
函数参数默认值

如果形参的个数多余实参,不设置参数默认值则等于undefined;

function f(x, y, z) {
    if (y === undefined) {
        y = 7
    }

    if (z === undefined) {
        z = 42
    }
        return x + y + z
    }
console.log(f(1))

ES6做法:

//ES6 函数参数的默认值的处理

function f(x, y=7, z=x+y) {

    console.log(Array.from(arguments));  //可以获取实参的个数,但是es6中不允许使用arguments对象了

    console.log(f.length);  //通过f.length可以获取形参无默认值的参数个数,而不是实参个数

    return x + y + z

}

console.log(f(1,undefined,20)) //传undefined 可以看作是优先默认值,底层做了类似ES5之前的做法

注意点:1.如果中间位置的实参不传,使用undefiend占位;2.带有默认值的参数往后写;3.参数默认值可以是常量,还可以是表达式

课程收获:
ES5和ES6的结合中可以用Array.from(arguments),去获取执行时候传入了几个参数
如果直接用f.length,只能判断定义函数的参数有几个,但是不知道他的默认值参数有几个,更不知道实际参数有几个参数

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP