在JavaScript中值类型和引用类型的区别

 

JavaScript中值类型和引用类型的区别

存储方式不一样

l基本数据类型

变量存储的是简单的数据段,存储的是具体的值,是轻量级的数据存储方式

l引用类型

引用类型的值,可以由多个值构成的对象,引用类型的变量存储的是对象引用地址。引用类型是重量的数据存储方式,分配在堆内存,频繁创建对象有损性能。

引用类型(N) ObjectArrayDateFunction、……

二、动态属性不一样

l引用类型能动态添加属性

var person=new Object();

 person.name="jack";

 person.age=20;

 console.log("姓名:%s,年龄:%d",person.name,person.age);

结果


说明

属性动态添加成功

l值类型不能添加

 

var person="";

 person.name="jack";

 person.age=20;

 console.log("姓名:%s,年龄:%d",person.name,person.age);

 结果


说明

属性动态添加失败,说明这是值类型的变量。

 

赋值的方式不一样

l值类型,拷贝变量的内容

var num=10;

var num2=num;//创建新的空间,拷贝num的值到num2

这个两个变量的内容是互不影响的,num2的内容是num的一个副本。类似操作系统的复件

var num=10;

var num2=num;

num2=100;//并不会影响到num的值

console.log("num=%d  num2=%d",num,num2);

结果


演示内存的演变(现场操作)

 

l引用类型,拷贝引用地址

var person1=new Object();

person1.age=18;

var person2=person1;//拷贝引用地址给变量person2于是同时指向一个对象

person2.age=30;//事实上也是person1指向的那个对象

console.log("person1.age=%d   person2.age=%d",person1.age,person2.age);

结果


说明

两个变量都指向同一个对象,对象就是希望被变量引用的,引用的数量也是没有限制的。

内存变化情况绘图(现场操作)



 



  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智学无忧-老曹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值