美文网首页JS
es6 ...扩展运算符

es6 ...扩展运算符

作者: 匆匆那年_海 | 来源:发表于2019-09-19 00:58 被阅读0次

... (扩展运算符):将数组对象转换成用逗号隔开的参数序列

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后前端汉子,爱编程、优秀、聪明、理性、沉稳、智慧的程序猿一枚。

相关文章

网友评论

    本文标题:es6 ...扩展运算符

    本文链接:https://www.haomeiwen.com/subject/ohsluctx.html