基本数据类型,引用类型的总结

数据类型

 

基本数据类型:指简单的数据段;

引用数据类型,指的是多个值构成的对象。

常见的基本数据类型:

Number,string,boolean,null和undefined

基本数据类型是按值访问的,因为直接操作保存在变量中的实际值;

Var a=10;

Var b=a;

b=20;

b获取的是a值的一份拷贝,虽然两个变量的值相等,但两个变量保存了两个不同的基本数据类型。B只保存了a复制的一个副本,所以b改变,对a没有影响。

Boolean,Number,Stringà原始类型

Undefined,Null—>原始值

注意:原始类型:代表了各自类型的所有成员。

原始值:代表了各自特殊类型的唯一成员。

 

 

引用数据类型:Object,Array,Function,Date等

Js中引用类型是保存在堆内存中的对象。

与其他语言不同的是,你不可以直接访问堆内存空间中的位置和操作堆内存空间。只能操作对象在栈内存中的引用地址。

引用类型数据在栈内存中保存的实际上市对象的堆内存中引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。

Var obj1=new Object();

Var obj2=obj1;

Obj2.name=”aaa”;

Console.log(obj1.name)//aaa

两个引用类型指向了同一个堆内存对象,把obj1在栈内存中引用地址复制了一份给obj2.所以改变时,改变的是堆内存对象。

 

基本类型和引用类型的区别:

基本类型:

1)        原始值存储在栈中的简单数据段,也就是说他们直接存储在变量访问的位置。

2)        原始类型的值可以直接访问到。

3)        原始值在将一个保存着原始值的变量时,会将原始值的副本赋值给新变量,此后两个变量完全独立,他们只是有用相同的value而已。

4)        Es中所有函数参数都是按值传递的,但涉及原始类型和引用类型还是有区别的。

原始值:知识把变量里的值传递给参数,之后参数和这个变量互补影响。

 

引用类型:

1)        引用值存储在堆中的对象,也就是存储在变量处的值是一个指针,指向存储对象的内存地址。因为引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查询的速度。相反,放在变量栈空间中的值是该对象存储在堆中的地址。地址的大小是固定的,所以把它存储在栈中队变量性能无任何负面影响。

2)        在js中不允许直接访问保存在堆内存中的对象。所以在访问一个对象时。首先得到的是这个对象自爱堆内存中的地址。然后再按这个地址去获取这个对象的值。这就是传说中的按引用访问。

3)        引用值:在将一个保存着对象的内存地址的变量复制给另一个变量时,会把这个内存地址赋值给新变量。也就是这两个变量指向了堆内存中同一个对象。他们中任何一个做出的改变会反应在另一个身上。

4)        对象变量里的值是这个对象在堆内存中的内存地址。因此它传递的值就是这个内存地址。这也就是为什么函数内部对这个函数的参数进行改变时,会体现在外部的原因。因为他们指向同一个对象。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值