基于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 相关文章推荐
对xmlHttp对象方法和属性的理解
Jan 17 Javascript
js和jquery中循环的退出和继续学习记录
Sep 06 Javascript
JavaScript中的alert()函数使用技巧详解
Dec 29 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
jQuery弹出div层过2秒自动消失
Nov 29 Javascript
node.js 和HTML5开发本地桌面应用程序
Dec 13 Javascript
原生和jQuery的ajax用法详解
Jan 23 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
Node.js Buffer模块功能及常用方法实例分析
Jan 05 Javascript
JavaScript中this的全面解析及常见实例
May 14 Javascript
JSONP解决JS跨域问题的实现
May 25 Javascript
vue-iview动态新增和删除的方法
Jun 17 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
剖析 PHP 中的输出缓冲
2006/12/21 PHP
PHP 变量类型的强制转换
2009/10/23 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
浅析vue中的nextTick
2020/12/28 Vue.js
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
python基础知识小结之集合
2015/11/25 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python gevent协程切换实现详解
2020/09/14 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
施工员岗位职责
2015/02/10 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
Nginx快速入门教程
2021/03/31 Servers
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
Java并发编程之Executor接口的使用
2021/06/21 Java/Android