在 ES6 中,函数参数中增加了 Rest 参数,可以更方便地处理函数传入的多个参数。本文将介绍 Rest 参数的使用方法,包括定义、传递与应用等。
什么是 Rest 参数
Rest 参数即以 ...
形式定义的函数参数,用于接收函数传入的多个参数并将它们转换为数组形式。例如:
function sum(...args) { console.log(args); } sum(1, 2, 3); // [1, 2, 3]
在函数 sum
的参数列表中,使用 ...args
定义了 Rest 参数。当函数 sum
被调用时,传入的参数会被自动转换为一个数组,并赋值给 args
变量。
需要注意的是,Rest 参数必须放在函数参数的最后一个位置:
function sum(a, ...args, b) { console.log(args); } sum(1, 2, 3, 4); // Uncaught SyntaxError: Rest parameter must be last formal parameter
Rest 参数的应用
- 不定参数的函数传递
Rest 参数可用于函数传递时,传递不定数量的参数。例如:
-- -------------------- ---- ------- -------- ------------ - ------ --------------- -- -- - - --- - -------- ----------------- - ------ --------------- -- -- - - --- - -------- -------- -------- - ------ ------------ - --------------------- -- -- ---- -- - -------------------------- -- -- ---- -- -
在函数 calc
中,通过 Rest 参数 ...args
实现了不定数量参数的传递,方便了函数计算的复用和扩展。
- 转换对象为数组
在一些场合下,将对象转换为数组可以方便数组的操作。Rest 参数可以用于将具有迭代器接口(即带有 Symbol.iterator
属性)的对象转换为数组。例如:
-- -------------------- ---- ------- --- ----------- - - -- ---- -- ---- -- ---- ------- -- ------------------ --------------------------------- -- -------- ---------------- - ------ ----- - ------------------------------------- -- ----- ---- ----
在函数 toArray
中,使用 Rest 参数 ...args
将具有迭代器接口的 iterableObj
转换为数组。
- 函数参数默认值
在函数参数中,Rest 参数可以与默认值(Default Parameters)结合使用。例如:
function join(separator = ',', ...args) { return args.join(separator); } console.log(join('-', 'a', 'b', 'c')); // a-b-c console.log(join()); // ''
在函数 join
中,使用了默认值 separator = ','
和 Rest 参数 ...args
。当没有传入 separator
参数时,默认为逗号,而 args
参数则可以接收任意数量的参数。
总结
本文详细介绍了 ES6 中函数的 Rest 参数的定义、传递与应用等方面,包括不定参数的函数传递、对象转换为数组以及函数参数默认值等。在实际开发中,合理使用 Rest 参数可以提高代码的可读性和可维护性,也可以让函数更灵活、易用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648e6d2548841e9894cc8941