美文网首页JavaScript学习笔记
JavaScript学习笔记_ES6_扩展运算符

JavaScript学习笔记_ES6_扩展运算符

作者: 菜出意料 | 来源:发表于2019-11-20 19:37 被阅读0次

    扩展运算符是...,将数组(实现了Iterator接口的对象)分割开,类似于rest参数的逆运算。

    console.log(...['a', 'b', 'c']) // a b c
    

    合并数组时

    let arr1 = [1, 2, 3],
        arr2 = [4, 5, 6]
        arr3 = [...arr1, ...arr2]
    console.log(arr1)   // [ 1, 2, 3 ]
    console.log(arr2)   // [ 4, 5, 6 ]
    console.log(arr3)   // [ 1, 2, 3, 4, 5, 6 ]
    

    将数组B追加到数组A中时

    let arr1 = [1, 2, 3],
        arr2 = [4, 5, 6],
        arr3 = [7, 8]
    arr1.push(...arr2) // 等价于arr1.push(4, 5, 6)
    arr1    // [ 1, 2, 3, 4, 5, 6 ]
    arr1.push(arr3) // 这种情况下,会将arr3当成一个元素
    arr1    // [ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]
    

    可替换函数的apply()方法

    当函数的参数是一个正常的参数列表,而我们要传递的参数是个数组时,需要借助函数的apply方法进行调用。有了扩展运算符后就可以直接进行函数调用。

    let arr = ['a', 'b', 'c']
    function f (a, b, c) {}
    f.apply(null, arr)  // ES6之前的写法
    f(...arr)   // ES6扩展运算符的写法
    

    数组的浅拷贝(用处不大)

    let arr1 = [1, 2]
    let arr2 = [...arr1]
    arr2[0] = 4
    arr2.push(3)
    arr1 // [1, 2]
    arr2 // [4, 2, 3]
    

    将字符串(类数组)转为数组

    let s = 'hello world'
    console.log([...s])   // [  'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
    

    相关文章

      网友评论

        本文标题:JavaScript学习笔记_ES6_扩展运算符

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