区分js基本类型和引用类型
变量包含两种不同数据类型的值:基本类型和引用类型。
- 基本类型:简单的数据段,按值访问。如Undefined、Null、Boolean、Number和String。不可添加属性,尽管这样不返回错误但没有意义。赋值到新变量时会复制创建一个新值,新旧两个变量相互独立使用。
- 引用类型:由多个值组成的对象,按引用(指针)访问。可添加属性和方法,赋值时实际上赋予的是该对象的指针,但新对象只是原对象的一个引用,两者的属性方法共用,两者实际表示一个东西~。
代码示例:
//基本类型
var num1 = 5;
var num2 = num1;
var num2 = 10;
var num1.size = 800;
alert(num1 + " " + num2); // 5 10
alert(num1.size); // undefined
复制代码
《js高级程序设计》表示基本类型的属性方法可用不会报错,在我实际测试时新规范使用时会报错。所以记着基本变量没有属性方法即可
//引用类型
var obj1 = new Object();
var obj2 = obj1;
obj1.name = "moshanxi";
alert(obj2.name); // "moshanxi"
复制代码