es6中variable = [... variable]的意义是什么?

时间:2017-12-11 21:38:30

标签: javascript ecmascript-6

我有一个变量arg,它已按如下方式分配

arg = [...arg]; 

这项任务意味着什么?

1 个答案:

答案 0 :(得分:-3)

假设原始arg是一个数组

使用示例

可以最好地证明这里发生的事情
const x = [1,2,3,4];
const y = [...x];
x == y; // false
x === y; // false
x[0] == y[0]; // true
x[0] === y[0]; // true

因此,虽然数组的内容保持相同,但数组本身是另一个引用。因此,这创建了数组的副本,因此不会修改原始数组。

这方面的一个例子可以是方法

function example1(x) {
  x = [...x];
  x[0] = 0;
  return x;
}
function example2(x) {
  x[0] = 0;
  return x;
}

const a = [1,2,3];
console.log(a);
const b = example1(a);
// The input variable is not mutated
console.log(a); // [1,2,3]
console.log(b); // [0,2,3]
const c = example2(a);
// The input variable is mutated as well
console.log(a); // [0,2,3]
console.log(c); // [0,2,3]