基本类型为:可以用typeof检测为什么类型
从逻辑上讲,表示一个空对象指针,这也是typeof null为object的原因,如果定义的变量将来用于保存对象,建议初始化的时候为var obj=null,这样一来,直接检查null的值就可以知道相应的变量是否已经保存一个对象的引用
var person=new Person(); person.name="Lily"; person.age=22;
var person={ name:“Lily”, age:22
1.动态的属性
var person=new Object(); person.name="Lily"; alert(person.name) //"Lily"
var person="Lily"; person.name="Lucy"; alert(person.name) //undefined
可以看到我们可以给基本类型添加属性,但在下次访问的时候,这个属性就不见了,可以看出只能给引用类型添加属性
2.复制变量值
var num1=5; num2=num1; num1=7; alert(num2) //5
var obj1={name:"Lily",age=22}; obj2=obj1; obj.addr="shenzhen" alert(obj2.addr) //shenzhen
obj1和obj2都指向同一个对象,当obj1增加了addr属性后 ,可以通过obj2访问这个属性,因为这两个变量引用的都是同一个对象
3.传递参数
ECMAScript都是按值传递的
function add(num){ num+=10; return num; } var count=20; var result=add(count); alert(count) //20 alert(result) //30
function add(obj){ obj.name="Lily"; } var person=new Object(); person.name="Lucy"; add(obj); alert(person.name) //Lily
person和obj引用的是同一个对象,即使这个对象是按值传递的,obj也会按引用来访问同一个对象,于是obj修改了属性name的值,person也会有反应
function add(obj){ obj.name="Lily";
obj=new Object();
obj.name="Jack"; } var person=new Object(); person.name="Lucy"; add(obj); alert(person.name) //Lily
这个例子就很好的证明了参数是按值传递的,如果是按引用类型,弹出的应该为Jack
4.检测类型
基本类型用typeof,引用类型用instanceof
javascript 基本类型和引用类型的区别,布布扣,bubuko.com
原文:http://www.cnblogs.com/zengm/p/3678981.html