基本类型和引用类型
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
在上一小节,我们介绍了 JavaScript 中的数据类型,其中基本类型如数字,布尔值, 它们在内存中都有固定的大小,我们通过变量来直接访问基本类型的数据。而对于引用类型,如对象,数组和函数,由于它们的大小在原则上是不受任何限制的,故我们通过对其引用的访问来访问它们本身,引用本身是一个地址,即指向真实存储复杂对象的位置。
基本类型和引用类型的区别是比较明显的,我们来看几个例子:
var x = 1;//数字x,基本类型
var y = x;//数字y,基本类型
alert(x);
alert(y);
x = 2;//修改x的值
alert(x);//x的值变为2
alert(y);//y 的值不会变化
运行结果如下:
1
1
2
1
这样的运行结果应该在你的意料之内,没有什么特别之处,我们再来看看引用类型的例子,由于数组的长度非固定,可以动态增删,因此数组为引用类型:
var array = [1,2,3,4,5];
var arrayRef = array;
array.push(6);
alert(arrayRef);
引用指向的是地址,也就是说,引用不会指向引用本身,而是指向该引用所对应的实际对象。因此通过修改 array 指向的数组,则 arrayRef 指向的是同一个对象,因此运行效果如下:
1,2,3,4,5,6
在线练习
{$ activeFileHint $}