ES6学习笔记-扩展运算符(...)
扩展运算符的定义:
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:34,
sex:'nv'
}
b={...a,age:22};
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=[1,2,3,4,5];
let[b,c]=[...a];
console.log('a',a);//[1,2,3,4,5]
console.log('b',b);//1
console.log('c',c);//2
</script>
微信公公众号 搜索 “不正经小前端” 并关注,和我一起学习海量前端技术
本文来自博客园,作者:七分暖,转载请注明原文链接:https://www.cnblogs.com/lin494910940/p/12368100.html


浙公网安备 33010602011771号