JavaScript学习笔记

JavaScript学习笔记_ES6_扩展运算符

2019-11-20  本文已影响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']
上一篇 下一篇

猜你喜欢

热点阅读