基于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 相关文章推荐
ToolTips JQEURY插件之简洁小提示框效果
Nov 19 Javascript
javascript 通用loading动画效果实例代码
Jan 14 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
异步JS框架的作用以及实现方法
Oct 29 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
详细分析JS函数去抖和节流
Dec 05 Javascript
Vue 仿QQ左滑删除组件功能
Mar 12 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
Sep 03 Javascript
layer.alert回调函数执行关闭弹窗的实例
Sep 11 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
vue实现信息管理系统
2020/05/30 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
javascript实现前端分页功能
2020/11/26 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
国贸专业的职业规划书
2014/03/15 职场文书
英文求职信范文
2014/05/23 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
高中运动会广播稿
2014/09/16 职场文书
初婚未育证明样本
2014/10/24 职场文书
企业百日安全活动总结
2015/05/07 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery