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