es6函数之rest参数用法实例分析


Posted in Javascript onApril 18, 2020

本文实例讲述了es6函数之rest参数用法。分享给大家供大家参考,具体如下:

es6引入rest参数(形式为 …变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了,rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

function add (...values) {
 let sum = 0;
 for (var val of values) {
 sum += val
 }
 return sum
}

add(2, 3, 5) // 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(item => {
 array.push(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

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JQuery优缺点分析说明
Jun 09 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
Mar 15 Javascript
JavaScript排序算法之希尔排序的2个实例
Apr 04 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
JavaScript里四舍五入函数round用法实例
Apr 06 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
js实现的星星评分功能函数
Dec 09 Javascript
JS本地刷新返回上一页代码
Jul 25 Javascript
原生JS实现图片左右轮播
Dec 30 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
对Angular中单向数据流的深入理解
Mar 31 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 Javascript
vue实现短信验证码输入框
Apr 17 #Javascript
JS监听组合按键思路及实现过程
Apr 17 #Javascript
javascript canvas检测小球碰撞
Apr 17 #Javascript
Vue实现浏览器打印功能的代码
Apr 17 #Javascript
基于JavaScript获取url参数2种方法
Apr 17 #Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
Apr 17 #Javascript
vue fetch中的.then()的正确使用方法
Apr 17 #Javascript
You might like
杏林同学录(七)
2006/10/09 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Python实现的矩阵类实例
2017/08/22 Python
python 同时运行多个程序的实例
2019/01/07 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
Python如何实现定时器功能
2020/05/28 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
详解Python 中的容器 collections
2020/08/17 Python
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
晚会邀请函范文
2014/01/24 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
家长寄语大全
2014/04/02 职场文书
学习演讲稿范文
2014/05/10 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers