基本类型和应用类型的值
- ** 基本类型**:就是简单的数据段,我们常见的基本数据类型有 Number , String,Boolean 等
- 引用类型:它的值可以是一个,可以是多个
//在给两种类型赋值的时候,是有区别的
/*对于基本类型来说,可以如下赋值*/
var number_1 = "hello";
alert(number_1); //输出的是 hello
/*对于引用类型,赋值方式可以如下*/
var n = new Object();
n.name = "zhuang";
n.age = 22;
n.sex = "man"; //由此可见,引用类型的赋值可以有很多个
alert(n.name);
alert(n.age);
alert(n.sex);
复制变量值
在复制变量的值上,两者的原理其实是有很大的区别的
/*对于基本类型来说,复制变量值就真的是在复制值*/
var a = 11;
var b = a;
alert(a); //输出的是 11
alert(b); //输出的是 11
基本类型
- 复制前
- 复制后
这虽然是复制,但是 a 和 b 是完全没有关系的,包括他们的值
引用类型
/*对于引用类型来说,复制变量值其实是在复制变量名称*/
var a = Object();
var b = a;
a.age = 1;
alert(b.age); //输出的结果是 1
/*假如,我把age的值给改了*/
var a = Object();
var b = a;
a.age = 1;
alert(b.age); //输出的结果是1
a.age = 2;
alert(b.age); 这里输出的结果是2
这说明了应用类型的赋值其实是动态的,换句话说,其实引用类型的复制,其实类似于变量名的复制
参数传递
参数的传递都是按值传递的方式来进行的,也就如同变量的复制一样。
注意: 在函数中,局部变量被引用一次后就会被销毁。外部如果再次调用就无法访问了。