基于es6三点运算符的使用方法(实例讲解)


Posted in Javascript onOctober 12, 2017

先看一个es6规范下三点运算符的使用实例:

let fun=function(a,...list){
 console.log(a,list);
};
fun('0','a','b','c');//0 [a,b,c]

以上可以看到我们现在在定义函数对象时可以动态设置参数的个数了:第一个参数a是普通参数(忽略),

大家可以看到第二个参数list前面有三个点 “...”,这种写法在es6规范中有两个用途

1 . 作为参数使用。

2 . 作为拓展运算符使用。

● 三点--作为参数:

let fun1=function(...args){
 for(let arg of args){
  console.log(arg);
 };
 console.log(args)
};
fun1('a','b','c');//a b c,[a,b,c]
fun1(1,2);//1 2,[1,2] ...args表示了所有的形参,不管传入多少参数,都可以通过args进行遍历得到,args则集合所有的参数组成参数数组

let fun2=function(arr,...args){
 console.log(arr);
 console.log(args);
};
fun2(1,2,3);//1, [2,3]
fun2(1);//1, []当...args有其他参数时,rest参数args数组集合除去前面参数之后的参数。

let fun3=function(arr1,..args,arr2){
 console.log(args);
}//此时报错!切记,三点作为rest参数的时候,其后不能再有任何参数,只能作为最后一个角色出现!

[x,...y]=[1,2,3];
console.log(y);//[2,3]

[x,...y,z]=[1,2,3];//报错,Rest element must be last element in array

//作为参数,三点运算符可以函数,解构赋值等方面发挥重要作用。‘人如其名',rest表示剩下的,
//它把剩下的任意数量的参数推入数组,所以也继承了数组的方法。rest参数只能出现在最后一位,
//不然会报错,当然以扩展运算的身份出现时另当别论。

● 三点--作为拓展运算符使用:

let arr=[1,2,3];
console.log(...arr);//1, 2, 3返回数组中的各项

let a=[2,3];
console.log(1,...a,4);//1,2,3,4扩展运算符可以放在中间

let divs=document.querySelectorAll('div');
[...divs];//Array[300],[]可以将divs转为数组解构;
console.log(...divs);//div1,div2....遍历divs各项

let set=new Set([1,2,3,3]);
[...set];//返回数组[1,2,3],可以将set数据结构转化为数组

let map=new Map([[1,'a'],[2,'b'],[3,'c']]);
[...map.keys];//返回[1,2,3],属性数组;
[...map.values];//返回[a,b,c],value数组

[...'wbiokr'];//["w", "b", "i", "o", "k", "r"]遍历字符串,返回各个字符;

let str='abc';
['aaa',...str,'ccc'];//[aaa, a, b, c, ccc]扩展运算符位置比较任性

//三点的扩展运算符,把数组或者类数组对象展开成一系列逗号隔开的值序列,它好比rest参数时候的逆运算。

以上这篇基于es6三点运算符的使用方法(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
js点击事件链接的问题解决
Apr 25 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
Oct 19 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
javascript计算渐变颜色的实例
Sep 22 Javascript
node中使用log4js4.x版本记录日志的方法
Aug 20 Javascript
原生js实现随机点名功能
Nov 05 Javascript
vue element实现表格合并行数据
Nov 30 Vue.js
详解TypeScript中的类型保护
Apr 29 Javascript
浅谈JavaScript的innerWidth与innerHeight
Oct 12 #Javascript
原生JS封装animate运动框架的实例
Oct 12 #Javascript
javascript中神奇的 Date对象小结
Oct 12 #Javascript
详解使用路由延迟加载 Angular 模块
Oct 12 #Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
Oct 11 #Javascript
js实现单张图片平移切换效果
Oct 11 #Javascript
jQuery自动或手动图片切换效果
Oct 11 #jQuery
You might like
php中json_encode中文编码问题分析
2011/09/13 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
利用Python破解斗地主残局详解
2017/06/30 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
Python 忽略warning的输出方法
2018/10/18 Python
python协程之动态添加任务的方法
2019/02/19 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
电信专业应届生自荐信
2013/09/28 职场文书
大学校庆邀请函
2014/01/11 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
小学重阳节活动总结
2015/03/24 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书