标签:
基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。
基本类型值(Undefined、Null、Boolean、Number 和String)类似于其他语言比如(C#、Java)中的基础数据类型,比如int、string、bool等;
Javascript中,变量的声明统一用关键字var声明,Javascript为弱类型语言
比如1=="1"//输出true(双等号只比较值内容,不比较值类型);1==="1"//输出false(三等号表示完全等于)
引用类型值类似于其他语言比如(C#、Java)中的类概念,变量存储的内容为地址;
下面我们用示例查看一下两者之间的区别
var num1 = 5;
var num2 = num1;
num2 = 10;
alert(num1);//输出10
alert(num2);//输出20
从上述例子中看出,num1 中保存的值是5。当使用num1 的值来初始化num2 时,num2 中也保存了值5。但num2中的5 与num1 中的5 是完全独立的,该值只是num1 中5 的一个副本。此后,这两个变量可以参与任何操作而不会相互影响。
var obj1 = new Object();
var obj2 = obj1;
obj1.name = "Nicholas";
alert(obj2.name); //"Nicholas"
ECMAScript 中所有函数的参数都是按值传递的。(复制到arguments 对象中的一个元素)
var setName = function(obj){
obj.name = "hgxu";
obj = new Object();
obj.name = "haha";
}
var person = new Object();
setName(person);
alert(obj.name);//输出hgxu
上述例子中,如果参数是按照引用传递,则setName函数中的所有对于obj的操作都应该对obj指向的内容产生影响,应该输出haha,但是实际情况不是这样的。
标签:
原文地址:http://www.cnblogs.com/hgxu/p/4612912.html