扩展运算符
扩展表达式主要应用于数组,也可用于对象,方便于数组的输出,数组对变量的赋值,数组的合并。(…)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中
用于变量赋值
如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。
//定义变量数组
let nums=[1,2,3,4];
//将数组[0] 给到 变量a,数组[1]\[2]\[3]给到 数组变量 b
//非ES6语法
let a=nums[0];
let b=new Array();
for(let i=1,len=nums.length;i<len;i++){
b.push(nums[i]);
}
console.log(a);
//1
console.log(b);
//[2,3,4]
//ES6语法 扩展表达式+结构表达式赋值
let [a,...b]=nums;
console.log(a);
//1
console.log(b);
//[2,3,4]
用于数组合并
//两个数组合并
let arrayA=[1,2,3];
let arrayB=[1,2,3];
//非ES6语法
let array=new Array();
for(let i=0,len=arrayA.length,i<len,i++){
array.push(arrayA[i]);
}
for(let i=0,len=arrayB.length,i<len,i++){
array.push(arrayB[i]);
}
console.log(array);
//[1,2,3,1,2,3]
//ES6语法
let array=[...arrayA,...arrayB];
console.log(array);
//[1,2,3,1,2,3]
对象的扩展运算符
对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中
let bar = { a: 1, b: 2 };
let baz = { ...bar }; // { a: 1, b: 2 }
述方法实际上等价于:
let bar = { a: 1, b: 2 };
let baz = Object.assign({}, bar); // { a: 1, b: 2 }
Object.assign
方法用于对象的合并,将源对象(source)
的所有可枚举属性,复制到目标对象(target)
。