ES6 函数的扩展 rest 参数
2019-03-14 20:08
218 查看
rest函数
ES6 引入 rest 参数 (形式为 …变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
function add(...values) { let sum = 0; for (var val of values) { sum += val; } return sum; } add(2, 5, 3) // 10
上面的代码的add函数是一个求和函数,利用rest 参数,可以向该函数传入任意数目的参数。
下面写一个rest 参数代替 arguments 变量的例子
// arguments变量的写法 function sortNumbers() { return Array.prototype.slice.call(arguments).sort(); } // rest参数的写法 const sortNumbers = (...numbers) => numbers.sort();
上面代码的两种写法,比较后可以发现,rest 参数的写法更自然也更加的简洁
arguments对象不是数组,而是一个类似数组的对象。所以为了使用数组的方法,必须使用Array.prototype.slice.call先将其转为数组。rest 参数就不存在这个问题,它就是一个真正的数组,数组特有的方法都可以使用。下面是一个利用 rest 参数改写数组push方法的例子。
function push(array, ...items) { items.forEach(function(item) { array.push(item); console.log(item); }); } var a = []; push(a, 1, 2, 3)
注意,rest 参数之后不能再有其它参数(即只能是最后一个参数),否则会报错
// 报错 function f(a, ...b, c) { // ... }
函数的length属性,不包括 rest 参数。
(function(a) {}).length // 1 (function(...a) {}).length // 0 (function(a, ...b) {}).length // 1
相关文章推荐
- ES6-函数的扩展-rest参数
- ES6(六: 函数扩展)(默认值,rest参数,扩展运算符)
- ECMAScript6(ES6)标准之函数扩展特性箭头函数、Rest参数及展开操作符
- ES6 随记(3.4.1)-- 函数的拓展(参数默认值,扩展运算符)
- ES6-rest参数和扩展运算符
- ES6中的解构、扩展运算符(...)、rest参数(...)的使用
- ES6---扩展运算符和rest‘...’(三点运算符),在数组、函数、set/map等中的应用
- ES6 rest参数和扩展运算符
- 10、函数的扩展 为函数参数指定默认值、函数的 rest 参数、箭头函数—ES6学习笔记
- ES6 rest参数和扩展运算符
- 函数的扩展---rest参数
- ES6中的rest参数与扩展运算符详解
- ES6学习总结之函数变化(函数默认参数,扩展运算符,箭头函数)
- ES6-函数的扩展-函数参数的默认值
- ES6-函数的扩展-catch语句的参数
- es6中的解构赋值、扩展运算符和rest参数使用详解
- 在es6中,对rest参数和扩展运算符的理解(待更新)
- ES6-rest参数和扩展运算符
- es6扩展运算符,rest运算符,箭头函数,
- ES6---扩展运算符和rest‘...’(三点运算符),在数组、函数、set/map等中的应用