基于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 Dialog 实践分享
Oct 22 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
Feb 16 Javascript
jquery 使用简明教程
Mar 05 Javascript
jQuery实现模拟marquee标签效果
Jul 14 Javascript
js中遍历对象的属性和值的方法
Jul 27 Javascript
工厂模式在JS中的实践
Jan 18 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
webpack配置文件和常用配置项介绍
Apr 28 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
canvas轨迹回放功能实现
Dec 20 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 jQuery
layui点击数据表格添加或删除一行的例子
Sep 12 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:风雨欲来 路在何方?
2006/10/09 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
PHP中“=>
2019/03/01 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
Underscore源码分析
2015/12/30 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python如何输出整数
2020/06/07 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
教育实习生的自我评价分享
2013/11/21 职场文书
员工拓展培训方案
2014/02/15 职场文书
春风行动实施方案
2014/03/28 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL