基于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 相关文章推荐
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
Apr 26 Javascript
JQuery插件Style定制化方法的分析与比较
May 03 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
javascript字符串与数组转换汇总
May 26 Javascript
jQuery中extend函数详解
Jul 13 Javascript
10个JavaScript中易犯小错误
Feb 14 Javascript
JavaScript Date对象应用实例分享
Oct 30 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
vue结合element-ui使用示例
Jan 24 Javascript
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
浅谈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实现的Cookies操作类实例
2014/09/24 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
jQuery实现进度条效果代码
2015/12/17 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
js实现车辆管理系统
2020/08/26 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
python函数的万能参数传参详解
2019/07/26 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
预备党员转正考核材料
2014/06/03 职场文书
体育运动口号
2014/06/09 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
创先争优活动个人总结
2015/03/04 职场文书
活动简报范文
2015/07/22 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers