Javascript中,如果将一个基本数据类型的值赋给一个变量,变量中存放的是值;如果将一个对象赋给一个变量,变量中存放的是该对象的引用。
注意:Javascript中字符串类型是基本数据类型。
与基本数据类型字符串、数值、布尔类型相对应的是String对象、Number对象、Boolean对象。
将一个变量赋值为字符串后,可以对该变量使用String对象的方法,Javascript会隐式地将这个字符串变量转化为String对象。但是注意,比较两个字符串变量时,比较的是这两个字符串是否相等;但比较两个用String对象赋值的变量时,比较的是String对象的引用。
一种自然的理解是:基本数据类型的值也可以看成对象,Javascript中变量存放的都是引用。下面的实验说明这种理解是错误的:
var myVar1 = "abc"; var myVar2 = myVar1; // 只是将"abc"赋给了myVar2,并不是让myVar1和myVar2指向同一个那啥 myVar1 = "def"; alert(myVar2); |