基本类型和应用类型

来源:互联网 发布:unity3d骰子转动 编辑:程序博客网 时间:2024/06/06 00:59

一、基本类型和引用类型的值

1、基本类型的值是值简单的数据类型,而引用类型的值可能由多个值构成的对象。
2、5种基本数据类型(string、number、boolean、undefined、null)是按值访问的,因为可以操作保存在变量中的实际的值。引用类型的值是保存在内存中的对象,JavaScript不允许直接访问内存中的位置,也就是不能直接操作对象的内存空间,在操作对象时,实际上是在操作对象的引用而不是实际的对象。
3、引用类型的值,我可以为其添加属性和方法,也可以进行改变,但是我们给基本类型的值添加属性,尽管不会导致任何错误。
eg:
引用类型:
var person=new Object();
person.name=”tom”; /添加name属性。如果对象不被销毁或者这个属性不被删除,将一直存在/
alert(person.name); //’tom’

基本类型:
var name=”tom”;
name.age=25;
alert(name.age); //undefined

4、复制变量值
4.1、如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。
eg:
var num1=5;
var num2=num1;
num2=45;
alert(num1); //5
alert(num2); //45

当用num1的值来初始化num2时,num2也保存了值5。但是num2和num1中的5是完全对立的,该值只是num1中5的一个副本。为此,这两个变量可以参加任何操作而不会相互影响。

4.2、引用类型中,一个变化,另一个也改变,因为第二值得副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际将引用同一个对象。
eg:
var obj1=new Object();
obj1.name=”tom”;
var obj2=obj1;
obj2.name=”blue”;
alert(obj1); //blue
alert(obj2); //blue

0 0
原创粉丝点击