美洲杯赌球ES6中的rest参数与扩展运算符详解

 

上面代码中,array.push(...items)add(...numbers)这两行,都是函数的调用,它们的都使用了扩展运算符。该运算符将一个数组,变为参数序列。

function add(...values) {
  let sum = 0;

  for (var val of values) {
    sum  = val;
  }

  return sum;
}

add(2, 5, 3) // 10
const [first, ...rest] = [1, 2, 3, 4, 5];
first // 1
rest // [2, 3, 4, 5]

const [first, ...rest] = [];
first // undefined
rest // []

const [first, ...rest] = ["foo"];
first // "foo"
rest // []

总结:二者为逆操作

const [...butLast, last] = [1, 2, 3, 4, 5]; // 报错

const [first, ...middle, last] = [1, 2, 3, 4, 5]; // 报错

 

您可能感兴趣的文章:

1、rest

2、函数的length属性,不包括 rest 参数。

2、扩展运算符

上面代码中,querySelectorAll方法返回的是一个nodeList对象。它不是数组,而是一个类似数组的对象。这时,扩展运算符可以将其转为真正的数组,原因就在于NodeList对象实现了 Iterator 。

扩展运算符可以处理对象,如对象的合并:

1、rest 参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。

rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

// arguments变量的写法
function sortNumbers() {
 return Array.prototype.slice.call(arguments).sort();
}

// rest参数的写法
const sortNumbers = (...numbers) => numbers.sort();

变量将多余的参数放入数组中。

function push(array, ...items) {
 array.push(...items);
}

function add(x, y) {
 return x   y;
}

var numbers = [4, 38];
add(...numbers) // 42
console.log(...[1, 2, 3])

好了,以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

 美洲杯赌球 1

从上面的例子可以看出,rest参数使用场景应该稍少一些,主要是处理不定数量参数,可以避免arguments对象的使用。而扩展运算符的应用就比较广了,在实际项目中灵活应用,能写出更精简的代码。

任何 Iterator接口的对象,都可以用扩展运算符转为真正的数组。

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

合并数组

将字符串转为数组

实现了 Iterator 接口的对象

rest参数用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

前言

function f(a, ...b, c) { ... } // 报错

另外,使用rest参数时应注意一下两点:

本文由美洲杯赌球发布于计算机教程,转载请注明出处:美洲杯赌球ES6中的rest参数与扩展运算符详解

TAG标签: 美洲杯赌球
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。