- 复制数组:
错误方法: arr2 = arr1
console.log(arr1===arr2) true
传统方法:
let arr3 = arr1.concat()
console.log( arr1 ===arr3 ) false
新方法:
let arr1=[1,2,3];
let arr2=[4,5,6,…arr1];
console.log(arr1 === arr2); false
注意:
注意展开运算符只能达到浅层克隆(复制),因为是浅层克隆,所以引用值还是会互相影响
-
复制对象:
let obj={“name”:“zhangsan”,“age”:18}
//传统方法
let new_obj={};
for(let key in obj){
new_obj[key]=obj[key];
}
//新方法(可以同时添加新属性)
let new_obj={…obj,“city”:“beijing”};
console.log(new_obj)//结果: {name:“zhangsan”,age:18,city: “beijing”} -
用于函数参数:
用作函数参数的时候,称为rest参数,函数参数不确定的时候,每个函数最多只能声明一个不定参数,并且一定要放在末尾。rest参数用于获取函数多余参数,这样就不需要使用argument对象。rest参数搭配的变量是一个数组,该变量将多余的参数放进数组中 -
用于解构赋值:
let [ a, …b ] = [ 7, 8, 9 ]
console.log( a,b ) // 7, [ 8,9 ] -
分解字符串
展开运算符可以将一个字符串分解成一个字符数组
const hey = ’ hey ’
const arr = [ …hey ] // [ ’ h ', ’ e ', ’ y ’ ]