资讯专栏INFORMATION COLUMN

javascript 变量赋值为数组是引用传递的坑

13651657101 / 1040人阅读

摘要:记录今天处理了小时的,代码如下我以为预期是结果却是说明这是一个引用传递了。铭记前天,月号,又遇到一个坑,原以为数组引用是一坑,暂时用这样的方式解决了,可是当引用内好有引用时这样的方式同意会遭遇坑,切记

记录今天处理了2小时的BUG,代码如下:

</>复制代码

  1. var a ={
  2. id:[1,2,3]
  3. }
  4. var d = a.id;
  5. d.push(4);
  6. console.dir(a);

我以为预期是:a.id = [1,2,3],结果却是 a.id = [1,2,3,4];
说明这是一个引用传递了。铭记~

前天,5月19号,又遇到一个坑,原以为:数组引用是一坑,暂时用:

</>复制代码

  1. var a = [1,2,3];
  2. var b = a.slice();
  3. b[2] = 1110;

这样的方式解决了,可是当引用内好有引用时:

</>复制代码

  1. var a = [{id:1}];
  2. var b = a.slice();
  3. b[0].id = 2;

这样的方式同意会遭遇坑,切记~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78093.html

相关文章

  • JavaScript的值传递引用传递

    摘要:值得注意的是还有另外三种类型和,它们通过引用来传递。变量地址对象引用传递对象是通过引用传递,而不是值传递。但是,如果函数的输入是对象,那么传入的是一个引用。 译者按: 机智如你,应该可以答对文末的面试题吧?如果不能,请好好学习,天天编程:) 原文: Explaining Value vs. Reference in Javascript 译者: Fundebug 为了保证可读性...

    andot 评论0 收藏0
  • JavaScript引用如何工作的

    摘要:在中,标量原始值是不可变的,复合值是可变的。当修改共享值时,引用将指向更新的值。通过引用来赋值如何创建一个新的引用当变量中的复合值被重新赋值的时候,将创建一个新的引用。因此,变量通过引用更改为变量中的新值。 感谢Naveen Karippai先生允许我翻译此文章,原文链接:https://www.sitepoint.com/how... 摘要:JavaScript中没有指针,并且Jav...

    hankkin 评论0 收藏0
  • 数值类型vs引用类型

    摘要:数值类型引用类型有种通过复制数值传值的数据类型。我们称之为原始基本数据类型还有三种通过引用传值的数据类型。当等式运算符和用于引用型变量时,他们会检查引用。这是中的地方在内存中的映射包含了函数的引用,其他变量则包含基本数据类型的数据。 本文旨在了解如何复制对象、数组和函数以及如何将它们传递到函数中。知道引用类型复制的是什么。了解原始值是通过复制值来复制及传递的。 数值类型 & 引用类型 ...

    missonce 评论0 收藏0
  • JavaScript对象深拷贝/浅拷贝遇到的坑和解决方法

    摘要:在以上讨论和研究结束后,同学向我推荐了一个库,测试了一下该库存在方法,实现深拷贝更为完整和精致,前文问题均没有在该方法内被发现,在这里提一波。 如果本文对您有任何帮助或者您有任何想要提出的意见或问题,请在本文下方回复,诚挚欢迎各位参与讨论,望各位不吝指教。原载自己的小博客 JavaScript对象拷贝遇到的坑和解决方法 | 手柄君的小阁,所以无耻地算原创吧 近期参与某集训,Java...

    atinosun 评论0 收藏0
  • ES6 变量声明与赋值:值传递、浅拷贝与深拷贝详解

    摘要:变量声明与赋值值传递浅拷贝与深拷贝详解归纳于笔者的现代开发语法基础与实践技巧系列文章。变量声明在中,基本的变量声明可以用方式允许省略,直接对未声明的变量赋值。按值传递中函数的形参是被调用时所传实参的副本。 ES6 变量声明与赋值:值传递、浅拷贝与深拷贝详解归纳于笔者的现代 JavaScript 开发:语法基础与实践技巧系列文章。本文首先介绍 ES6 中常用的三种变量声明方式,然后讨论了...

    snowLu 评论0 收藏0

发表评论

0条评论

13651657101

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<