为什么在我修改 x 数组时 y 数组会发生变化? javascript

Why is the y-array changing when I modify the x array? javascript

// x = [7,2]
let x = [7, 2];

// y = [[7,2]]
let y = [x]

// x = [9,2]
x[0] = 9;

// y also = [[9,2]]
console.log(y);

为什么我改变了x,y也改变了? y 不应该还是我初始化它时的样子 [[7,2]] 吗?这种现象叫什么?

正在通过引用复制值。 - https://www.dyn-web.com/javascript/arrays/value-vs-reference.php

你想做什么 -

let x = [7,2];

let y = [...x];

x[0] = 9;

(2) [9, 2]

y
(2) [7, 2]

在javascript中,当您将数组复制到另一个变量时,它不会将数据复制到另一个变量。它将创建对该变量的引用,因此当原始数组发生变化时,复制到数组上的内容也会发生变化,这称为按引用调用。

另一个术语称为按值调用,它将数据复制到另一个变量,原始数据类型就是这种情况