js的两种数据类型

js中的数据类型总体来说分为两种,他们分别是:
值类型(基本类型):数值型(Number),字符类型(String),布尔值型(Boolean),null 和 underfined
引用类型(类):函数,对象,数组等
 
值类型理解:变量之间的互相赋值,是指开辟一块新的内存空间,将变量值赋给新变量保存到新开辟的内存里面;之后两个变量的值变动互不影响;
例如:
var a=10;//开辟一块内存空间保存变量a的值“10”;
var b=a;//给变量b开辟一块新的内存空间,将a的值“10”赋值一份保存到新的内存里;
 //a和b的值以后无论如何变化,都不会影响到对方的值;
 
引用类型理解:变量之间的互相赋值,只是指针的交换,而并非将对象(普通对象,函数对象,数组对象)复制一份给新的变量,对象依然还是只有一个,只是多了一个指引~~;例如:
var a={x:1,y:2}//需要开辟内存空间保存对象,变量a的值是一个地址,这个地址指向保存对象的空间;
var b=a;//将a的指引地址赋值给b,而并非复制一给对象且新开一块内存空间来保存;
 //这个时候通过a 来修改对象的属性,则通过b 来查看属性时对象属性已经发生改变;
 
js解释器有自己的内存管理机制,当不再有任何一个引用指向一个对象时,解释器就会认为此对象没用了,然后在动回收此对象所占用的内存资源; 
 
值类型都是对象(null和underfined除外),只是他们是伪对象
对象/伪对象 都有属性和方法;
ECMAScript规定所有的对象都有toString()方法,无论是对象还是伪对象;
Number,String,Boolean值的原始/默认类型都是伪对象;他们都有属性,都有toString()方法;
null 和 underfined 没有属性和方法;

 

 

posted @ 2016-07-13 12:55  虫虫舞  阅读(1470)  评论(0编辑  收藏  举报