基于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 相关文章推荐
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
基于jQuery实现模拟页面加载进度条
Apr 01 Javascript
javascript中call和apply方法浅谈
Sep 27 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
Oct 31 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 Javascript
JQuery动态添加Select的Option元素实现方法
Aug 29 Javascript
BootStrap与Select2使用小结
Feb 17 Javascript
Vue2仿淘宝实现省市区三级联动
Apr 15 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
May 09 Javascript
jQuery实现查看图片功能
Dec 01 jQuery
浅谈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
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
PHP实现简易计算器功能
2020/08/28 PHP
JavaScript事件列表解说
2006/12/22 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
python三大神器之fabric使用教程
2019/06/10 Python
python中可以声明变量类型吗
2020/06/18 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
知识竞赛活动方案
2014/02/18 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
单位委托书怎么写
2014/08/02 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
自查自纠工作总结
2014/10/15 职场文书
给朋友的赠语
2015/06/23 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
小学数学教学反思范文
2016/02/16 职场文书