JavaScript编程精解系列——函数中的默认参数
小作 2018-03-07 来源 :网络 阅读 897 评论 0

摘要:本系列JavaScript编程精解将给大家系统的讲解一些基础知识,看完这系列文章会让你对JavaScript入门有更加清晰的概念。

本系列JavaScript编程精解将给大家系统的讲解一些基础知识,看完这系列文章会让你对JavaScript入门有更加清晰的概念。

 

JavaScript函数可以有默认参数值。通过默认函数参数,你可以初始化带有默认值的正式参数。如果不初始化具有某些值的参数,则该参数的默认值为undefined。

 

请看下列代码:

 

function foo(num1){

    console.log(num1);

}

foo();

在调用函数foo时,你没有传递任何参数,因此变量num1的默认值设置为undefined。但是,有时你可能需要设置默认值而非undefined。过去,最好的策略是测试参数值undefined,然后分配一个值。所以,在上面的例子中,如果你想要将num1的默认值设置为9,那么你可以按照以下代码所示的方式做:

 

function foo(num1) {

    if (num1 === undefined) {

        num1 = 9;

    }

    console.log(num1);

}

foo();

ECMAScript 6引入了函数的默认参数。使用ECMA 2015的默认参数功能,你将不再需要检查未定义的参数值。现在,你可以将9设置为参数本身的默认值。你可以重写上述函数以使用默认值,如下所示:

 

function foo(num1 =9) {

    console.log(num1);

}

foo();

对于函数foo,如果num1参数的值未被传递,那么JavaScript将设置9作为num1的默认值。

 

检查未定义的参数

 

即使你在调用函数时明确地传递undefined作为参数值,参数值也将设置为默认值。

 

function foo(num1 =9) {

    console.log(num1);

}

foo(undefined);

在上面的代码中,你传递undefined为num1的值;因此,num1的值将被设置为默认值9。

 

运行时计算默认值

 

JavaScript函数默认值在运行时计算。为了更好地理解这一点,请看以下代码:

 

function foo(value = koo()) {

    return value;

}

function koo() {

     return "Ignite UI";

}

var a = foo();

console.log(a);

在函数foo中,参数值的默认值设置为函数koo。在运行时调用函数foo时,将计算函数koo。调用foo函数后,你会得到如下图所示的输出(在这个例子中,我们使用了Ignite UI框架)。

 

重用默认参数

 

默认参数可供之后的默认参数使用。请看下列代码:

 

function foo(num1 = 9, num2 = num1 + 8){

    console.log(num2);

}

foo();

在上面的代码中,使用num1的默认值来计算num2的默认值。调用函数foo时将得到以下输出:

  

结论

 

JavaScript默认参数在编写函数时非常有用。在调用函数时,如果缺少参数,则默认参数功能允许你为函数参数分配默认值,而不是将其定义为undefined。

 

希望这篇文章可以帮助到你。总之,同学们,你想要的职坐标IT频道都能找到!

本文由 @小作 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved