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

js函数默认参数的问题

唐七
关注TA
已关注
手记 2
粉丝 0
获赞 1

今天工作中发现一个bug,我调查询接口的时候,查询方法有四个参数

let getquery = (e,start=1,limit=50,isExport){
    ...
}

其中limit是分页大小。是有默认值的,所以我调查询办法的时候,我通常会不赋值给参数

this.getquery(formparams,1,null,false)

我发现这样写之后,我查询数据的时候没有给limit参数。

原因是,null值,方法内部会真的当null值处理。

我们来试验一下,先声明一个函数:

let a = function(a=1,b=2){console.log(a+b)}

当我们运行:

a(1,null)
//1 1+null=1
a(1,undefined)
///3 1+2=3

所以想忽略这个参数,我应该是这样写:

this.getquery(formparams,1,undefined,false)

当我limit传undefined 的时候,才会去拿limit的默认值作为实际参数。

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