JS对象:传值和传址

本文探讨了JavaScript中的变量存储方式,解释了基本数据类型和对象类型的传值与传址区别。基本数据类型在栈内存中按值存储,而对象在堆内存中按地址存储。赋值和函数参数传递时,对象实际上是复制了引用,而不是值。对象比较时,不考虑内容,只比较内存地址。为实现对象独立复制,可以使用`Object.assign()`。
摘要由CSDN通过智能技术生成

理论基础

  • JS中的所有变量都保存在栈内存中
  • 基本数据类型的值直接保存在栈内存中
  • 对象的值保存在堆内存中,栈内存中保存的是对象的地址
  • 赋值操作a=b都会复制栈内存中的值,只是对象在栈内存中的存的是地址

传值

基本数据类型 String Number Boolean Null Undefined 都是传值

	// 下方代码中,修改 b 的值之后,a 的值并不会发生改变
    var a = 1;
    var b = a;
    b = 2;
    console.log(a,b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值