关于变量的基本类型和引用类型
基本类型包括 Undefined Null Boolean Number String.
这五种基本数据类型是按值访问的,
因为可以操作保存在变量中的实际值.-
引用类型指的是由多个值构成的对象,
引用类型的值是直接保存在内存中的,
JavaScript是不允许直接访问,
也就是说不能直接操作对象中的内存空间.
那么在实际中操作对象操作的是引用!
1. 基本类型
var num1 = 5; var num2 =num1;
num1中保存的是的值是5,
第二句中用num1来初始化 num2的值
num2中的值也是5,但是两个变量是相互独立的.
2. 引用类型
var obj1 = new Object (); var obj2 = obj1; obj1.name = "zhangsan"; alert(obj2.name); // zhangsan
首先obj1 保存了一个新的对象.
然后这个对象复制给obj2,
那么obj1和obj2都指向同一个对象.
当为obj1添加name属性后那么obj2也可以访问name属性
来看下面这两个例子:
var personA = { name = "wz", age = 18, }; var personB = personA; person.age = 19; console.log(personB.age);
var personA = { name = "wz", age = 18, }; var personB = personA.age; person.age = 19; console.log(personB.name);
第一段代码 :
首先定义了一个变量personA指向一个对象
里面有两个属性分别是name和age,
name和age都是基本变量,
接下来把personA赋值给personB,
实际上是personA和personB指向同一个对象,
然后将19赋值给对象的age属性.
改变了对象属性的值,所以输出是19;
第二段代码所不同的是将对象的age属性的值赋给personB,
这里的personB不再是指向对象的,它是一个具体的值,
所以这里的输出是18!