ES5详解:按值访问与按引用访问

1、es5的变量访问类型分两种

a、按值访问(基本数据类型)
b、按引用访问(引用类型)

2、先明白这两数据类型的区别

a、基本数据类型保存于栈中## 
b、引用数据类型保存于堆中

3、这就要引出堆栈的特点了

a、栈:有序排列,大小固定,比堆更快
b、堆:无序排列,大小不固定,比栈更慢

4、我们通过一个例子来看看栈的大小固定带来的情况

var a = 0
var b = a
a = 1
前两行语句
地址
1000#
a0
b0
1003#
执行第三行后
地址
1000#
10010(待释放)
b0
a1
我们通过一个例子来看看堆的应用带来的情况,这里new出来的object地址为98888
var a = new object();
b = a
b.name =JOJO

第一句语句

地址
1000#
a98888
1002#
1003#

执行第二行后

地址
1000#
a98888
b98888
1003#

总结

1、按值访问与按地址访问就是在栈中保存的值是指针还是实际的数值
2、占的访问速度比上堆要快上不少,对于对象这种大的数据,基于栈的特性。
在栈中对对象进行操作过于耗费时间。
3、采用这种方式总地来说是为程序的性能作考虑。在不为占空间添加过量负担的同时,
将变量中大数据与小数据进行分区。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值