基于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 相关文章推荐
动态改变textbox的宽高的js
Oct 26 Javascript
风吟的小型JavaScirpt库 (FY.JS).
Mar 09 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
Js四则运算函数代码
Jul 21 Javascript
JavaScript变量的作用域全解析
Aug 14 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
Nuxt.js实战详解
Jan 18 Javascript
vue中添加mp3音频文件的方法
Mar 02 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 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 简单数组排序实现代码
2009/08/05 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
基于python编写的微博应用
2014/10/17 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
基于python的列表list和集合set操作
2019/11/24 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
行政助理岗位职责
2013/11/10 职场文书
优秀应届生求职信
2014/06/16 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers