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 相关文章推荐
sogou地图API用法实例教程
Sep 11 Javascript
javasript实现密码的隐藏与显示
May 08 Javascript
在JavaScript中处理字符串之link()方法的使用
Jun 08 Javascript
jquery实现文本框textarea自适应高度
Mar 09 Javascript
Angular2库初探
Mar 01 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
Jul 27 Javascript
Angularjs cookie 操作实例详解
Sep 27 Javascript
通过一个简单的例子学会vuex与模块化
Nov 22 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
koa+jwt实现token验证与刷新功能
May 30 Javascript
JS实现提示效果弹出及延迟隐藏的功能
Aug 26 Javascript
js实现时钟定时器
Mar 26 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
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
js 窗口抖动示例
2013/09/04 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
python实现通过shelve修改对象实例
2014/09/26 Python
解析Python中的异常处理
2015/04/28 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python设置随机种子实例讲解
2019/09/12 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
在校生钳工实习自我鉴定
2013/09/19 职场文书
政府信息公开实施方案
2014/05/09 职场文书
公司副总经理任命书
2014/06/05 职场文书
新教师培训方案
2014/06/08 职场文书
开国大典观后感
2015/06/04 职场文书
青年志愿者活动感想
2015/08/07 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫