ES6 解析:默认参数
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
又一周过去了,我的“ES6深度解析”博客系列又更新啦!这周我们将讨论ES6引入的默认参数,在我看来,它非常实用。我在训练营学习默认参数的时候,第一个念头就是“为什么他们不早点教我们这个?!”默认参数虽然简单,但功能却非常强大。
我其实很兴奋能为大家写这篇博客文章,那么我们就开始吧!
ES6 之前
关于 JavaScript 函数参数,需要特别注意的一点是,它们的默认值为undefined0。在下面的示例中,你会注意到,当我们不传递参数值时,num2函数addition()将返回NaN0。这是因为undefined0 本身不是一个数字,不能与 0 的值相加num1。
解决未定义参数的问题
在 ES6 和默认参数引入之前,开发者可以通过一些方法来处理未定义参数的情况。他们通过在函数内部测试参数来实现这一点。当时有两种常用的方法。
上面的例子使用条件语句来检查typeof参数是否严格不等于某个值undefined。如果是,则参数将被设置为传递给它的值,在第一个例子中是 7。现在,如果是undefined,就像第二个例子一样,则参数的值num2将被设置为 1。
开发者过去常用的另一种测试函数参数的方法是使用真值/假值模式。下面的示例展示了两种情况:一种是向函数传递值,另一种是不传递值num2。
引入默认参数
引入默认参数后,代码变得更加简洁易读!下面的示例展示了一个简单的使用场景。默认参数使用起来非常简单,只需将参数设置为你想要的默认值即可。
第二个案例的输出为 5,因为num1取值为 4,而num2值为 1,这要归功于我们方便的默认参数。
省略值
此时你可能在想……“如果想把第一个参数设为默认参数怎么办?该怎么做?”嗯,这就是我们将在本节讨论的内容,对我来说也是新知识。
当我们需要将默认参数设置为第一个参数,甚至是中间参数时,我们需要使用关键字 `default` undefined。在向函数传递参数时,undefined`default` 应该用作占位符。
上面的例子展示了在第一个参数槽中使用默认参数的效果。下面的例子展示了在中间参数槽中使用默认参数的效果。
最后想说的话
在这篇文章中,我们探索了默认参数的奥妙。我们了解到,使用默认参数可以让代码更简洁,也更容易被其他开发者理解。在研究这个主题之前,我一直以为默认参数只能用作最后一个参数。现在我们知道,作为开发者,我们可以将默认参数作为undefined占位符,传递给函数的参数也可以实现同样的效果。
希望这篇文章对大家有所帮助。我知道这并不是什么特别复杂的话题,但我今天学到了一些新东西,所以我觉得值得写下来!
祝您编程愉快。
注:本周的特色图片来自我三月份的爱尔兰之旅。地点:爱尔兰巴利科顿。
来源
ES6默认参数的使用:
使用 ES6 默认参数和属性简写编写简洁代码





