美文网首页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