标签:
一 数据类型
基本类型:undefined,null,boolean,number,string 保存在栈内存中 占用空间固定 变量直接从栈内存中存取的是该值
引用类型:array,object,function,regexp 保存在堆内存中 占用空间不固定 变量从栈内存中读取指针,再通过指针在堆内存中访问该值
1.动态属性
不能给基本类型添加属性或方法
2.复制变量值
值类型属于基本类型的变量,复制的是值;值类型属于引用类型的变量,复制的是指针,他们都指向的同一个对象
3.参数传递
ECMAScript中所有的函数参数都是按值传递
function setName (obj) { obj.name = "Mysic"; } var person = {}; setName(person); alert(person.name) // Mysic //看似是引用。其实仍然是按值传递。 //这里的值指的是对象在栈内存中保存的指针。 function setName(obj) { obj.name = "Mysic"; obj = {}; obj.say = "Blabla"; } var person = {} setName(person); alert(person.name) //Mysic alert(person.say) // undefined //如果是引用传递,那么person应该是指向函数中的新的对象,并存在say属性。实际上并不存在。
4. 检测类型
基本类型数据用typeof
引用类型数据用instanceof Object[,Array,RegExp]
标签:
原文地址:http://www.cnblogs.com/mysic/p/5324390.html