首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【ES6基础】默认参数值

开篇

今天的内容很简单,小编将会给大家介绍调用函数过程中,如果其中的参数缺失,如何设置默认值。

我们都清楚在调用函数的过程中,定义的参数缺失,此参数变量的值则会是undefined。怎么给缺失的参数赋值默认值,在ES6之前,并没有太简洁的方法,如下段代码所示:

代码语言:javascript
复制
function myFunction(x, y, z) {
    x = x === undefined ? 1 : x;
    y = y === undefined ? 2 : y;
    z = z === undefined ? 3 : z;
    console.log(x, y, z); //Output "6 7 3"
}
myFunction(6, 7);

这种写法是不是比较麻烦?默认值的设置是不是不够直观?

在ES6中,我们可以用更简洁的语法进行实现,通过本篇文章你将学习到以下内容:

  • 使用ES6语法声明参数默认值
  • 使用undefined传参
  • 参数运算

本篇文章阅读时间预计3分钟

01

使用ES6语法声明参数默认值

我们可以使用ES6简洁的语法,如下示例进行声明函数参数的默认值:

代码语言:javascript
复制
function myFunction(x = 1, y = 2, z = 3) {
console.log(x, y, z);
}
myFunction(6,7); // Outputs 6 7 3

在上述代码示例中,我们在调用此函数中传递了前两个参数,因此参数的默认值(即x=1和y=2)将会被覆盖(即x=6和y=7)。由于第三个参数缺省,因此z使用默认值,将会是3。

02

使用undefined传参

如果我们想让具体某个参数使用默认值,我们可以使用undefined进行传参赋值,如下段代码所示:

代码语言:javascript
复制
function myFunction(x = 1, y = 2, z = 3) {
    console.log(x, y, z); // Outputs "1 7 9"
}
myFunction(undefined,7,9);

是不是很简单,只需要使用undefined,我们就可以指定具体某个参数使用默认值。

03

参数运算

在ES6中我们不仅可以给参数默认赋值具体的数值,同时参数赋值支持参数的逻辑运算,如下段代码所示:

代码语言:javascript
复制
function myFunction(x = 1, y = 2, z = x + y) {
    console.log(x, y, z); // Output "6 7 13"
}
myFunction(6,7);

在上述代码中,我们只传入了前两个参数,第三个参数缺省,第三个参数的默认值是则会是前两个参数之和。

04

小节

今天的内容就到这里,当我们在开发一些工程应用通用组件时,都需要暴露一些接口以供使用。而这些接口的友好性是决定这个组件质量的一大指标,其中参数缺省值(默认值)的完善程度同时也影响接口的友好性,感谢ES6能让我们用如此简洁的语法设置参数的缺省值。

下一篇
举报
领券