码迷,mamicode.com
首页 > 编程语言 > 详细

27 JavaScript数据类型与内存管理

时间:2019-12-26 09:51:33      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:rip   number   内存   属性   方法   原始数据类型   数据类型   地址   改变   

JavaScript共有7种数据类型:

  • number
  • string
  • boolean
  • null
  • undefined
  • obj
  • Symbol

前5种存在栈中,栈中变量名存储的是值,object存在堆中(对象数值类型也存储在堆中),栈中变量名存储的是堆中的地址

obj1 = obj;

obj1拿到的是obj的地址,不是地址中的值,相当于拿到的是一把钥匙,而不是箱子里的内容.假设这个地址是#aaaaaa,那么开启这把箱子的钥匙就有两把,分别是obj和obj1,任何一把都能改变箱子里的内容,箱子里的内容一旦改变,那么任何一把钥匙在此后打开箱子后拿到的都是改变后的值

此时obj对象的属性改变,obj1读到的值也改变 

。。。

综上,可以得出以下三点:

不论是对象还是前5原始数据类型,它们的变量名都存储在栈中

前5种基本数据类型的变量名在栈中存储的是值,但是它们的方法是通过相应的对象数据类型调用的,所以存取是栈调用,调用方法是堆调用,即对象调用

对象存储在堆中,栈中存储的对象变量名存储的是堆中的地址,对象改变,是堆中的属性改变,但是地址并不改变

27 JavaScript数据类型与内存管理

标签:rip   number   内存   属性   方法   原始数据类型   数据类型   地址   改变   

原文地址:https://www.cnblogs.com/ltfxy/p/12100121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!