在 ECMAScript 2015(ES6)中,引入了 Rest 参数,它能够使函数接受任意数量的参数。本文将详细介绍 Rest 参数并提供实用的指导。
什么是 Rest 参数
Rest 参数是在函数定义中使用三个点(...)的形式。它允许函数接受不定量的参数,并将它们存储为数组。
以下示例中,我们定义了一个函数 sum
,接受任意数量的参数并返回它们的总和。我们可以使用 Rest 参数将这些参数存储为数组 nums
:
-- -------------------- ---- ------- -------- ------------ - --- ----- - -- --- ------ --- -- ----- - ----- -- ---- - ------ ------ - ------------------ -- ---- -- - ------------------ -- -- -- ---- -- --
在以上示例中,我们可以调用 sum
函数并传入任意数量的参数,它们都将被存储为数组 nums
。我们依次遍历它们并将它们相加,最后返回它们的总和。
如何使用 Rest 参数
使用 Rest 参数可以很容易地传递不定量的参数,并能够将它们存储为数组。下面是一些使用 Rest 参数的实用案例。
获取函数的剩余参数
有时我们只需要为函数传递少量的参数,并将剩余的参数存储为数组。以下示例中,我们定义了一个函数 join
,它使用 Rest 参数将多个字符串组合成一个新的字符串,并使用指定的分隔符将它们分开:
function join(separator, ...strings) { return strings.join(separator); } console.log(join('-','a','b','c')); // 'a-b-c' console.log(join('','a','b','c')); // 'abc'
在以上示例中,我们定义了一个 join
函数,它使用 Rest 参数将多个字符串存储为数组 strings
。我们使用 join
方法将这些字符串用指定的分隔符组合成一个新的字符串并返回。
忽略函数的前几个参数
有时我们需要忽略函数的前几个参数,并将其余的参数存储为数组。以下示例中,我们定义了一个函数 filter
,它使用 Rest 参数将函数的前两个参数忽略,并将余下的参数存储为数组 nums
。我们使用 filter
方法过滤 nums
数组中小于 3 的元素:
function filter(ignore1, ignore2, ...nums) { return nums.filter(num => num >= 3); } console.log(filter(1, 2, 3, 4, 5)); // [3, 4, 5] console.log(filter(1, 2, 1, 2, 3)); // [3]
在以上示例中,我们定义了一个 filter
函数,它使用 Rest 参数忽略了前两个参数。我们使用 filter
方法过滤了 nums
数组中小于 3 的元素,并返回一个新的数组。
总结
在 ECMAScript 2015 中,使用 Rest 参数可以很容易地传递不定量的参数,并将它们存储为数组。使用 Rest 参数能够使代码更简洁并提高代码复用率,它应该是你日常编写函数时的一个必备技巧。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64cddd48b5eee0b5255ce828