JavaScript默认参数函数

举报
搞前端的半夏 发表于 2022/01/24 23:07:44 2022/01/24
【摘要】 在没有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
}

当然你也可以选择在函数内部做其他操作。

image-20220124225340929

在此基础上,我们又可以进一步的简化代码。上面的if判断,先判断值是否存在不存在则用1,那么我们可以直接使用||

function calculate(x,y) {
    x=x||1
  y=y||1
    return x/y
}

image-20220124225629790

上面的两种方法都可以解决我们的问题,但是一旦参数过多,难道你需要一个一个的判断吗,100个参数,那岂不是需要100个判断,代码量不得飞起啊。

所以让我们完全能这样做。我们现在在 ES6 中可以做的只是在我们定义我们的函数时简单地设置它,

function calculate(x=1,y=1) {
    return x/y
}

image-20220124225912400

这里Javascript会自动判断是否是undefined ,如果是undefined 则会直接使用默认值。

使用默认值的注意点

  1. 不能用let和const再次声明默认值,var可以。

image-20220124230448995

  1. 默认参数可以不是一个值类型,它可以是一个函数调用
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。