JavaScript默认参数函数
【摘要】 在没有JavaScript默认参数函数的时候,我们给函数传递参数的时候,会经常需要判断传过来的参数时候有值,是否为空。例如下面的函数,通常情况下,这个函数我们是需要传两个参数的,当然这个函数的y参数也可以是0,(现实情况是不允许的)function calculate(x,y) { return x/y}如果在调用这个函数忘记传参,返回值是NaN。这个值如果在后面继续使用的话,可能旧会...
在没有JavaScript默认参数函数的时候,我们给函数传递参数的时候,会经常需要判断传过来的参数时候有值,是否为空。
例如下面的函数,通常情况下,这个函数我们是需要传两个参数的,当然这个函数的y参数也可以是0,(现实情况是不允许的)
function calculate(x,y) {
return x/y
}
如果在调用这个函数忘记传参,返回值是NaN。这个值如果在后面继续使用的话,可能旧会出现error。为了避免这个问题,我们需要在函数内部进行判断。
function calculate(x,y) {
if(x===undefined){
x=1
}
if(y===undefined){
y=1
}
return x/y
}
当然你也可以选择在函数内部做其他操作。
在此基础上,我们又可以进一步的简化代码。上面的if判断,先判断值是否存在不存在则用1,那么我们可以直接使用||
function calculate(x,y) {
x=x||1
y=y||1
return x/y
}
上面的两种方法都可以解决我们的问题,但是一旦参数过多,难道你需要一个一个的判断吗,100个参数,那岂不是需要100个判断,代码量不得飞起啊。
所以让我们完全能这样做。我们现在在 ES6 中可以做的只是在我们定义我们的函数时简单地设置它,
function calculate(x=1,y=1) {
return x/y
}
这里Javascript会自动判断是否是undefined ,如果是undefined 则会直接使用默认值。
使用默认值的注意点
- 不能用let和const再次声明默认值,var可以。
- 默认参数可以不是一个值类型,它可以是一个函数调用
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)