es6默认参数

原创
2019/03/19 13:54
阅读数 110

es5 要实现默认参数,一般是

在大括号里 写, 

function calc(x, y) {
    x = x || 0;
    y = y || 0;
    // to do with x, y
    // return x/y
}

 

es6后,直接用语言本身来处理, 写在小括号里

function calc(x=0, y=0) {
    console.log(x,y)
}

默认参数可以不是一个值类型,它可以是一个函数调用

function throwIf() {
    throw new Error('少传了参数');
}
 
function ajax(url=throwIf(), async=true, success) {
    return url;
}
ajax(); // 没有传url,则使用默认参数 throwIf()   返回Error: 少传了参数

 

=============================================================

 

定义了默认参数,函数的length属性会减少,即有默认参数不包含在length的计算当中

function calc(x=0, y=0) {

    console.log(x, y)

}

function ajax(url, async=true, dataType="JSON") {


    console.log(url, async, dataType)

}

console.log(calc.length); // 0  x,y 2个都有默认参数,不参与计算

console.log(ajax.length); // 1

 

function.length和 arguments的区别:

function.length:计算形参的长度
arguments:计算实参的长度

 

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部