资讯专栏INFORMATION COLUMN

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

13651657101 / 870人阅读

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

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

var a ={
    id:[1,2,3]
}

var d = a.id;
d.push(4);

console.dir(a);

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

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

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

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

var a = [{id:1}];
var b = a.slice();
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
  • JavaScript 回顾学习:变量

    摘要:变量的分类全局变量可以在任何地方使用的变量局部变量在函数内声明的变量只在函数内有定义,作用域是局部性的什么时候使用当一个数据需要被反复使用时,就要先保存在变量中。 第一篇回顾学习,变量 什么是变量 变量就是在内存中刨一个坑存一个数据,再给这个坑起个名。为什么要给一个加引号呢,因为JavaScript是松散类型的,即一个变量可以用来保存任何类型的数据。变量的分类:全局变量:可以在任何地方...

    KitorinZero 评论0 收藏0

发表评论

0条评论

13651657101

|高级讲师

TA的文章

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