ES6 中的函数默认值与 rest 参数的使用技巧

阅读时长 4 分钟读完

ES6 中的函数默认值与 rest 参数的使用技巧

在 ES6 中,函数默认值和 rest 参数是两个比较常用的特性。他们可以帮助我们更方便地编写代码并提高代码的可读性。下面我们就来详细讲一下这两个特性的使用技巧。

函数默认值

ES6 之前定义函数参数默认值的方法是:

但是这种方式有一个弊端,当参数的值为 falsy 值时(比如 0、''、NaN、null、undefined),函数参数的默认值就不起作用了。例如:

ES6 提供了一种更简单、更可靠且更易读的方式来定义函数参数默认值,例如:

使用这种方式定义函数参数默认值,即使参数的值为 falsy 值,也可以正确地使用默认值。例如:

当然,函数参数默认值的设置还可以是一个表达式,例如:

这里的默认值 y 是 x,这样调用时,如果传入 y 的值是 undefined,就会使用 x 的值作为 y 的默认值。例如:

还可以使用函数作为默认值,例如:

这里的默认值是一个立即执行的函数,返回值是 x,这样在调用时可以动态生成默认值,例如:

当然,在不考虑浏览器兼容性的情况下,你还可以使用 Nullish Coalescing 运算符(??)来定义函数默认值,例如:

这样就可以使用 ?? 运算符来判断参数是否为 null 或 undefined,如果是,就使用默认值。

Rest 参数

Rest 参数用于将多个参数合并成一个参数。在函数签名中,它表示一个不定参数(即,可以传入任意数量的参数),并将参数封装成一个数组。例如:

在调用这个函数时可以传入任意数量的参数,这些参数会以数组的形式封装到 args 中,并进行求和操作:

Rest 参数还可以与普通的参数一起使用,例如:

在这个例子中,Rest 参数 args 收集了除第一个参数和第二个参数以外的所有参数,然后进行求和操作。

当然,在不考虑浏览器兼容性的情况下,还可以使用扩展运算符(...)来展开数组,从而将多个参数展开成一个参数,例如:

这样就可以不使用 Rest 参数,直接将数组展开成函数的参数列表。

总结

函数默认值和 rest 参数是 ES6 中非常实用且常用的特性,可以帮助我们更方便地编写代码并提高代码的可读性。默认值的使用可以让代码更加简洁且可读性更高,而 Rest 参数的使用则可以让代码更具有扩展性和灵活性。同时,这两个特性还可以和其他的特性(比如箭头函数、解构赋值等)一起结合使用,从而产生更强大和方便的语言特性,因此在学习和掌握 ES6 语言特性时,这两个特性是必须要掌握的。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64635034968c7c53b0454d0f

纠错
反馈