了解JavaScript函数中的默认参数


Posted in Javascript onMay 30, 2019

前言

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框架)。

了解JavaScript函数中的默认参数

重用默认参数

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

function foo(num1 = 9, num2 = num1 + 8){
console.log(num2);
}
foo();

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

了解JavaScript函数中的默认参数

结论

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

英文原文:Easy JavaScript Part 3: What Is a Default Parameter in a Function?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Js获取数组最大和最小值示例代码
Oct 29 Javascript
Javascript验证上传图片大小[前台处理]
Jul 18 Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 Javascript
node.js读取文件到字符串的方法
Jun 29 Javascript
浅谈jQuery中setInterval()方法
Jul 07 Javascript
JS图片放大效果简单实现代码
Sep 08 Javascript
JavaScript实现图片切换效果
Aug 12 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 Javascript
初试vue-cli使用HBuilderx打包app的坑
Jul 17 Javascript
微信小程序canvas截取任意形状的实现代码
Jan 13 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 #Javascript
轻松学习JavaScript函数中的 Rest 参数
May 30 #Javascript
细说Vue组件的服务器端渲染的过程
May 30 #Javascript
了解JavaScript中let语句
May 30 #Javascript
koa+jwt实现token验证与刷新功能
May 30 #Javascript
深入理解JavaScript 箭头函数
May 30 #Javascript
socket在egg中的使用实例代码详解
May 30 #Javascript
You might like
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
python实现趣味图片字符化
2019/04/30 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
安装docker-compose的两种最简方法
2019/07/30 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python实时监控logstash日志代码
2020/04/27 Python
python制作抽奖程序代码详解
2021/01/15 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
仓库主管岗位职责
2014/03/02 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
诉讼授权委托书
2014/10/15 职场文书
入伍通知书
2015/04/23 职场文书
网吧员工管理制度
2015/08/05 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
关于vue-router-link选择样式设置
2022/04/30 Vue.js