es6默认参数

博客介绍了ES5和ES6实现默认参数的方式,ES5在大括号里写,ES6用语言本身处理,写在小括号里,默认参数可以是函数调用。还提到定义默认参数后函数length属性会减少,以及function.length计算形参长度、arguments计算实参长度的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:计算实参的长度

 

 

转载于:https://my.oschina.net/u/560237/blog/3024505

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值