JavaScript默认参数函数

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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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