javascript基本类型和引用类型

pdw00 2013-10-24

javascript基本类型和引用类型(合成类型)

       基本数据类型在内存中具有固定大小,而引用类型(如对象、数组、函数等类型)则可以具有任意长度。因此,不能将引用类型直接存储在关联每个变量的固定内存地址中,实际上存储的只是对这个值的引用。通常,该引用的形式是指针或内存地址。

       基本类型和引用类型的差别是非常重要的,对二者的引用也会出现很大的差别。看下面的例子,全部使用了数值型(基本类型):

<script language="javascript" type="text/javascript">
<!--
        var a = 1;
        var b = a;
        a = 2;
        document.write("a的值为:" + a + "<br />");
       document.write("b的值为:" + b );
//-->
</script>

输出:

a的值为:2
b的值为:1

从上面的结果可以看出,尽管a的值已经改变,但b并未随之改变。下面我们看下用数组(引用类型)的例子:

<script language="javascript" type="text/javascript">
<!--
         var a = [1,2];
         var b = a;
         a[0] = 2;
         document.write("a的值为" + a + "<br />");
         document.write("b的值为" + b );
//-->
</script>

输出:

a的值为2,2
b的值为2,2

       可以看出,b的值是随着a的值而改变的。这是因为,在"var b = a;"语句中,赋给b的只是对数组值的一个引用,而不是数组本身。执行该条语句后,只不过有了两个对数组的引用而已。

相关推荐