JavaScript——基本数据类型与引用数据类型(内存分析)

前端 专栏收录该内容
66 篇文章 0 订阅

导图:

js中内存分类为两种——栈和堆

  • 栈:变量存在栈内存中
  • 堆:对象存放在堆内存中

基本类型传值


结论:基本数据类型的值存在栈,值与值之间独立存在,修改一个值不会影响其他变量

举个例子:把a的值传给b

下面解释为什么当a的值变为124时,b为什么不改变

可以看出a和b的值相互独立,当代码执行到a++时,只是a的值变为124,而b也是123


引用类型传值


结论

  • 对象保存在堆内存中
  • 每创建一个新的对象就会在堆内存开辟一个新的空间
  • 变量保存的是内存地址(对象引用)
  • 两个变量保存同一个引用,一个变量修改属性时,另一个变量属性值也会变化

举例说明:

当obj属性name变为"孙悟空"时,obj1属性name也变为"孙悟空"

内存分析——解释上述现象

当栈存放引用类型时,值为对象的地址,obj与obj1指向同一个地址,所以当obj的name值变为“孙悟空”时,obj1也会发生变化

  • 0
    点赞
  • 14
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值