本文摘自PHP中文网,作者青灯夜游,侵删。
本篇文章带大家详细了解一下JavaScript中值和引用传递的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在JavaScript中,可以通过值和引用传递。两者之间的主要区别是,按值传递发生在赋值基本类型的时候,而赋值对象时按引用传递。下面详细看看。
1.理解基本类型和对象
JavaScript提供了2种数据类型:基本类型和对象。
基本类型有 number
, boolean
, string
, symbol
,null
,undefined
。
1 2 3 4 5 6 7 8 9 10 |
|
第二类是对象,普通对象、数组、函数等等都是对象。
1 2 3 4 5 6 7 8 9 10 |
|
换句话说,任何不是基本类型的值都是对象。
2.按值传递
按值传递的简单规则是 JS 中的所有基本类型都按值传递,就这么简单。
按值传递意味着每次将值赋给变量时,都会创建该值的副本,每一次哦。
举个例子来看看,假设我们有两个变量 a
和 b
:
1 2 3 4 5 6 7 |
|
第一条语句,声明一个变量 a
,并赋值为 1
。
第二条语句,声明一个变量 b
,并把 a
的值赋值给它。
最后,b = b + 2
增加2并变为3
。b
变量发生变化,并且该变化不会影响a
的值。
3.引用传递
通过引用传递的方式与值传递相比会有所不同。
当创建一个对象时,就获取一个对该对象的引用。如果两个变量持有相同的引用,那么改变对象会反映在两个变量中。
相关阅读 >>
javascript深入探索 websocket和http/2与sse +如何选择正确的路径!
javascript对象rest和spread的使用技巧(附代码)
javascript函数式编程中代码组合(compose)的理解
更多相关阅读请进入《javascript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者