JavaScript的传值与传址

本文探讨了传值与传址的区别,特别是在JavaScript中的表现形式。对于不同数据类型的处理方式进行了详细说明,并解释了字符串不可修改特性的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

首先看传值与传址的比较:

 

 传值传址
复制实际复制的是值,存在两个不同的、独立的拷贝复制的只是对数值的引用。如果通过这个新的引用修改了数值,则这个改变对最初的引用来说也可见
传递传递给函数的是值的一个独立拷贝,对它的改变在函数外部没有影响传递给函数的是对数值的一个引用。如果在函数里通过传递给它的引用修改了数值,则这个修改对外部可见
比较比较的是两个独立的值(通常是逐字节的比较),以判断它们是否相同比较的是两个引用,以判断它们是否引用到同一数值。对两个不同的数值的引用不相等,即使这两个数值的值具体相同的字节

 

在JavaScript中,不同的类型会有不同的传递方式:

 

 

传值传址
数字、布尔值、(字符串?)所有的对象

 

实际上,也不能这么简单的归类。和java一样,我们也可以统称它们都是按值传递的,只不过对于对象类型,所谓的值,不是对象具体含有的值,而是指这个对象地址。

 

另外,和Java一样,JavaScript中的字符串是不可修改的,因此实际上字符串按哪种方式传递就显得无关紧要了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值