... (扩展运算符):将数组对象转换成用逗号隔开的参数序列
console.log(...[1, 2, 3]); //1 2 3
console.log(...'abc'); //a b c
简单举例几个用途吧
1.用于函数调用
function add(x, y) {
return x + y;
}
//es5写法
console.log(add.apply(null, [2, 3])); // 5
//es6写法
console.log(add(...[2, 3])); // 5
2.比大小
// ES5 的写法
Math.max.apply(null, [12, 2, 63]); //63
// ES6 的写法
Math.max(...[12, 2, 63]); //63
// 等同于
Math.max(12, 2, 63); //63
3.push数组
// ES5 的写法
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
Array.prototype.push.apply(arr1, arr2);
console.log(arr1) //[1, 2, 3, 4, 5, 6]
// ES6 的写法
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
arr1.push(...arr2)
console.log(arr1) //[1, 2, 3, 4, 5, 6]
4.合并数组
var a = ['a', 'b'];
var b = ['c', 'd'];
// ES5合并数组
console.log(a.concat(b)); // [ 'a', 'b', 'c', 'd']
// ES6合并数组
console.log([...a, ...b]); // [ 'a', 'b', 'c', 'd']
5.合并对象
var obj = {a:1,b:2};
// ES5合并对象
var obj1 = Object.assign(obj,{b:4});
console.log(obj);//{a: 1, b: 4}
// ES6合并对象
var obj2={...obj,...{b:4}};
console.log(obj2);//{a: 1, b: 4}
原文作者:匆匆那年_海,博客主页:https://www.jianshu.com/u/910c0667c515
95后前端汉子,爱编程、优秀、聪明、理性、沉稳、智慧的程序猿一枚。
网友评论