You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请问const arrCopy = arr;与const arrCopy = [...arr];的区别是什么?

请提供需要格式化的具体内容,我会按照你指定的Markdown规则进行处理。


如果是针对你之前提出的「两种JavaScript数组赋值方式区别」的问题,按照规则格式化后的回答如下:

JavaScript两种数组赋值方式的核心区别

1. const arrCopy = arr;:引用传递

  • 这种操作只是把原数组arr的内存引用地址赋值给了新变量arrCopy,两个变量指向的是同一个数组对象
  • 修改任意一个变量对应的数组元素,另一个变量的数组也会同步变化,因为它们本质上指向同一块内存空间
  • 示例代码:
    const arr = [1, 2, 3];
    const arrCopy = arr;
    arrCopy[0] = 100;
    console.log(arr); // 输出 [100, 2, 3]
    console.log(arrCopy); // 输出 [100, 2, 3]
    

2. const arrCopy = [...arr];:浅拷贝创建新数组

  • 这是ES6扩展运算符的用法,会创建一个全新的数组对象,并把原数组的所有元素浅拷贝到新数组中
  • 新数组和原数组是两个独立的对象,修改新数组的普通元素不会影响原数组(注意:如果原数组包含引用类型元素,比如对象、子数组,这类元素仍会共享引用,属于浅拷贝范畴)
  • 示例代码:
    const arr = [1, 2, 3];
    const arrCopy = [...arr];
    arrCopy[0] = 100;
    console.log(arr); // 输出 [1, 2, 3]
    console.log(arrCopy); // 输出 [100, 2, 3]
    

内容的提问来源于stack exchange,提问作者Alexsandr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:01:06