JavaScript变量,数据和内存的相关问题

变量,数据和内存

数据:存储在内存里面的010101

内存:通电后产生可存储数据的空间,断电后数据消失,内存中有两块数据,一块是数据,一块是地址

变量:由变量名和变量值组成,每个变量都对应一小块内存,变量名用来查找内存,变量值为该内存中保存的数据

相关问题

关于赋值与内存

赋值无非就两种

赋值的是值

var a = 1;
var b = a;
//b赋值的是1

赋值的是地址

var a = {};
var b = a;
//b赋值的是a的地址
关于引用变量赋值的问题

当两个引用变量指向同一对象通过一个变量修改对象内部数据,另一个变量看到的是修改之后的数据

var obj1 = {name:"zlearn"}
var obj2 = obj1 //此时,obj2存的数据就是obj1的数据,obj1的数据就是对象的地址值
obj2.age = 12
console.log(obj1.age) 
//此时输出的是{name:"zlearn",age:12}

以下要注意作用域

var a = {age:13}
function fn2(obj){ 
	obj={
		age:15
	}
}
fn2(a)
console.log(a.age)//输出的是13不是15

栈:01x1001, 01x1002

​ ⬇ ⬇

堆:{age: 15} {age: 13}

变量a的值为01x1002

变量obj的值为01x1001

当程序运行时,fn2(a)这一步就相当于obj = a,obj的地址值指向的对象时{age:15},a的地址值还是01x1001,所以输出的是13

js引擎如何管理内存?

内存生命周期:

分配小内存空间(变量的内存空间),得到它的使用权

存储数据,可以反复操作

释放小内存空间

当var b = {} 要被释放的时候,b自动释放,b所指向的对象所在后面的某一个时刻由垃圾回收器回收。

对象被释放的时候要成为垃圾对象,再被回收

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值