基于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 相关文章推荐
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
Oct 16 Javascript
Javascript实现页面跳转的几种方式分享
Oct 26 Javascript
通过隐藏iframe实现无刷新上传文件操作
Mar 16 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
js面向对象编程总结
Feb 16 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
Vue项目查看当前使用的elementUI版本的方法
Sep 27 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
解决VueCil代理本地proxytable无效报错404的问题
Nov 07 Javascript
原生js实现点击按钮复制内容到剪切板
Nov 19 Javascript
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 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
天津市收音机工业发展史
2021/03/04 无线电
smarty模板引擎基础知识入门
2015/03/30 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
使图片旋转的3种解决方案
2013/11/21 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
pandas数据处理之绘图的实现
2020/06/15 Python
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
幼儿教师研修感言
2014/02/12 职场文书
初级会计求职信范文
2014/02/15 职场文书
相亲大会策划方案
2014/06/05 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
土地转让协议书
2014/09/27 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
李强为自己工作观后感
2015/06/11 职场文书
Python竟然能剪辑视频
2021/05/25 Python
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android