扩展运算符的定义:

es6中引入扩展运算符(...),它用于把一个数组转化为用逗号分隔的参数序列。
它常用在不定参数个数时的函数调用,数组合并等情形。

用法一:不定参数个数时的函数调用

<script type="text/javascript">
function test(arr,...items) {
for (var i = 0; i < items.length; i++) {
arr.push(items[i]);
}
}
var arr=[1,2,3];
test(arr,[44],[55],[66]);
console.log(arr);//[1,2,3,[44],[55],[66]]
</script>

用法二:数组合并

<script type="text/javascript">
var arr1=[1,2,3,4];
var arr2=[5,6,7,8];
var arr3=[...arr1,...arr2];
console.log('arr1',arr1);//[1,2,3,4]
console.log('arr2',arr2);//[5,6,7,8]
console.log('arr3',arr3);//[1,2,3,4,5,6,7,8]
</script>

用法三:将字符串转为正在的数组

<script type="text/javascript">

var arr=[...'qwewrtrtyyuu'];
console.log(arr);// ["q", "w", "e", "w", "r", "t", "r", "t", "y", "y", "u", "u"] </script>

扩展运算符可以将字符串转为数组,当要注意的是一定要在待转的字符串外面加上中括号[];

用法四:对象的浅拷贝

  <script>
var a={
name:'dfdfd',
age:,
sex:'nv'
}
b={...a,age:};
console.log('b',b);//{name:'dfdfd',age:22,sex:'nv'}
} </script>

可以看到对象b的结果为{name:'dfdfd',age:22,sex:'nv'}这说明了扩展运算符可以把a的属性扩展称参数列表后赋值给b, 当b的age属性为22 这说明后面赋值的同名属性会覆盖前面的值。

用法五:析构赋值

 <script>
var a=[,,,,];
let[b,c]=[...a];
console.log('a',a);//[1,2,3,4,5]
console.log('b',b);//
console.log('c',c);//
</script>

 
 

ES6学习笔记-扩展运算符(...)的更多相关文章

  1. es6 学习小记 扩展运算符 三个点(...)

    参考: es6 扩展运算符 三个点(...) 经常回顾,方能真正掌握. 一.含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. ...

  2. ES6-11学习笔记--扩展运算符与rest参数

    1.符号都是使用:... 2.扩展运算符:把数组或者类数组展开成用逗号隔开的值 3.rest参数:把逗号隔开的值组合成一个数组   扩展运算符: function foo(a, b, c) { con ...

  3. JS&ES6学习笔记(持续更新)

    ES6学习笔记(2019.7.29) 目录 ES6学习笔记(2019.7.29) let和const let let 基本用法 let 不存在变量提升 暂时性死区 不允许重复声明 块级作用域 级作用域 ...

  4. es6学习笔记-class之一概念

    前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...

  5. ES6学习笔记之变量的解构赋值

    变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; ...

  6. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

  7. ES6学习笔记<四> default、rest、Multi-line Strings

    default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...

  8. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  9. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

随机推荐

  1. 解题报告:luogu P1433 吃奶酪

    题目链接:P1433 吃奶酪 我感觉可以改成:[模板]TSP问题(商旅问题) 了. 爆搜\(T\)一个点,考虑状压\(dp\)(还是爆搜). 我们用\(dp[i][j]\)表示现在是\(i\)状态,站 ...

  2. Nodejs 开发 随手记

    console.log(Object.prototype.toString.call(Now.toString())); //类型判断

  3. 标准盒模型、怪异盒模型(box-sizing)

    CSS中Box model是分为两种: W3C标准(标准盒模型) 和 IE标准盒子模型(怪异盒模型).大多数浏览器采用W3C标准模型,而IE中则采用Microsoft自己的标准. 重要的一个属性是bo ...

  4. autoit 《FAQ 大全》

    常见问题:  Q1 如何调试脚本? MsgBox(0,"测试",$var) ConsoleWrite("var=" & $var & @CRLF ...

  5. pytorch中tensor张量数据基础入门

    pytorch张量数据类型入门1.对于pytorch的深度学习框架,其基本的数据类型属于张量数据类型,即Tensor数据类型,对于python里面的int,float,int array,flaot ...

  6. java并发:原子类之AtomicLong

    原子类之AtomicLong java线程中的操作,需要满足原子性.可见性等原则,比如i++这样的操作不具备原子性, A线程读取了i,另一个线程执行i++,A线程再执行i++就会引发线程安全问题 推荐 ...

  7. Js 获取当前日期时间及其它操作(转)

    Js获取当前日期时间及其它操作 var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();   ...

  8. oracle练习-day01

    .基础查询 yearly .条件查询小于的员工 ; ;的员工;  ,,); .模糊查询.排序.字符函数,) test .数值函数.,),round(.,),round(.) .,.),trunc(., ...

  9. ch4 圆角框

    固定宽度的圆角框 只需要两个图像:一个应用于框的顶部,一个应用于底部 <div class="box"> <h2>Lorem Ipsum</h2> ...

  10. 700k把web端程序包装为桌面程序

    electron因为自带cef所以体积巨大,还不是因为windows没有chromium的webview嘛,现在有了新edge后,这个项目通过依赖各个平台的webview,并依赖.net core,做 ...