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学习笔记-扩展运算符(...)的更多相关文章
- es6 学习小记 扩展运算符 三个点(...)
参考: es6 扩展运算符 三个点(...) 经常回顾,方能真正掌握. 一.含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. ...
- ES6-11学习笔记--扩展运算符与rest参数
1.符号都是使用:... 2.扩展运算符:把数组或者类数组展开成用逗号隔开的值 3.rest参数:把逗号隔开的值组合成一个数组 扩展运算符: function foo(a, b, c) { con ...
- JS&ES6学习笔记(持续更新)
ES6学习笔记(2019.7.29) 目录 ES6学习笔记(2019.7.29) let和const let let 基本用法 let 不存在变量提升 暂时性死区 不允许重复声明 块级作用域 级作用域 ...
- es6学习笔记-class之一概念
前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...
- ES6学习笔记之变量的解构赋值
变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- ES6学习笔记<三> 生成器函数与yield
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
- ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
随机推荐
- 3D_solarSys
计算机图形学_3DsolarSys 一.软件功能 1.实现3D太阳系,有太阳.土星.土星环.地球.月球.天王星.海王星.火星.其中土星.地球.天王星.海王星.火星绕着太阳转,土星环绕着土 ...
- web组件化开发第一天
技术选型 html5 css3 jq 应用的插件 FullPage.js 一.建一个测试页面,测试静态的功能 <!DOCTYPE html> <html> <head&g ...
- Qtxlsx的使用
上一遍讲述了基于Qt5.9.8下编译Xtxlsx,本遍讲述基于Qt5.9.8下使用Qtxlsx 1.打开Qt Creator 4.8.2(Enterprise),创建工程,选择版本 2.在pro文件中 ...
- Linux centosVMware NFS exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp
一.exportfs命令 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 vim /etc/exports //增加 /tmp/ 1 ...
- JSTL fn:replace()函数替换 换行符
转自:http://blog.163.com/chenjie_8392/blog/static/439339842010513128139/ 近日在使用textarea时,输入了回车,为了将texta ...
- Windows的本地时间(LocalTime)、系统时间(SystemTime)、格林威治时间(UTC-Time)、文件时间(FileTime)之间的转换
今天处理了一个Bug,创建历史数据时脚本函数的起始时间不赋值或者赋0值时,计算引擎推给历史库的UTC时间为-288000000000,一开始以为是bug,经过分析后发现不赋值默认给起始时间赋0值,而此 ...
- 五 RequestMapping的使用
1 设置路径映射为数组,在Controller类中一个方法对应多个映射路径,可以被多个url访问 2 分目录管理,在Controller类上添加Request Mapping注解,url访问必须添加相 ...
- jforum发表文章和回复文章显示中文乱码问题
jforum安装时,在数据库创建jforum数据库的时候,设置了字符集(CREATE DATABASE jforum DEFAULT CHARACTER SET utf8 COLLATE utf8_g ...
- @Qualifier
当一个接口,有多个实现类且均已注入到spring容器中了,使用时@AutoWired是byType的,而这些实现类类型都相同,此时就需要使用@Qualifier明确指定使用那个实现类.因此,@Qual ...
- js 用于运行string中的<script>和</script>之间的函数
/** * Created by 炜文 on 2017/2/15. */ var intext = '485222<script> var i=2;var j=2;console.log( ...