关于扩展运算符(spread)和剩余运算符(rest) ES6学习笔记(1)

关于扩展运算符(spread)和剩余运算符(rest) ES6学习笔记(1)

    • ES6扩展运算符(spread)
    • ES6剩余运算符(rest)

ES6扩展运算符(spread)

ES6扩展运算符,也就是’…’ 它可以将数组转成由逗号分隔的参数列
那么我们可能用到的场景有哪些呢?

  1. 拷贝数组
// bad
const len = items.length;
const itemsCopy = [];
let i;

for (i = 0; i < len; i++) {
  itemsCopy[i] = items[i];
}

// good
const itemsCopy = [...items];
  1. 替代数组的 apply 方法
// ES5 的写法  
function f(x, y, z) {  
// ...  
}  
var args = [0, 1, 2];  
f.apply(null, args);  
// ES6 的写法  
function f(x, y, z) {  
// ...  
}  
var args = [0, 1, 2];  
f(...args);
  1. 与赋值解构结合使用
// ES5  
a = list[0], rest = list.slice(1)  
// ES6  
[a, ...rest] = list    


const [first, ...rest] = [1, 2, 3, 4, 5];  
first // 1  
rest // [2, 3, 4, 5]  

注意如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。

ES6剩余运算符(rest)

ES6剩余运算符,也就是’…’ 它将多余的参数放入数组中

  1. 作为函数的参数
//demo
function fn ( first, ...args) {
	console.log(args.length);
}
fn(1,2,3,4,5,6)  // 5
  1. 与赋值解构结合使用
var [a,...temp]=[1, 2, 4];
    console.log(a);  // 1
    console.log(temp);  // [2,4]

++++++++++++++++
下面是技术总结:
1.扩展运算符(spread)将数组转成由逗号分隔的参数列。
2.剩余运算符(rest)将剩余的参数放入一个数组中。
3.spread和rest互为逆运算
4.当三个点(…)在等号左边,或者放在形参上。为 rest 运算符
当三个在等号右边,或者放在实参上,是 spread运算符

文章部分参考了阮一峰ES6入门的知识点下面是链接:ECMAScript 6 入门

你可能感兴趣的:(ES6,扩展运算符,剩余运算符)