js中不同类型的数据在内存中的存放特点

2017-12-26

朵朵.jpg

关于变量与数据类型,细究起来,有的时候初学者会头晕,为何?不同的书有不同的说法,比如,变量的数据类型,数据类型。。。什么,变量的数据类型?其实,意思是这样的,变量是个容器,存储数据,而这些数据又分为不同的类型(即:数据类型)。他们是这么关系。

js的数据类型大体分为两种,其一:基本类型(值类型),包括Number(数字)、String(字符串)、Boolean(布尔值)、Undefined、Null,这5种。其二:引用类型,即,对象。

附注:网上对这种分类的命名异常混乱,比如,基本类型,有的叫原始类型,又比如有的,将Undefined、Null单独拉出来,说成是特殊数据类型。还有,对于引用类型,有的除了对象,还说有数组。这其实不是知识本身的问题,而是“中文”的问题,是在翻译过程中不严谨,没有权威,没有唯一确定而导致的混乱。对于菜鸟来说,这种知识之外的干扰反而影响学习。其实,数据类型根据在内存中的存储特点就分两大类,至于叫什么,知道那么回事就行。

本文开头说了,变量是个容器,你可以想象成一个盒子,这个盒子里放着数据。所谓基本类型的,就是指,盒子里放着的是实实在在的一个值。例如:var x=10;即:定义(声明)了一个叫X的盒子,这个盒子里放着数字10。

再说,引用类型。例如:var y={name:xiao;sex:male};即:定义(声明)了一个叫X的盒子,这个盒子里放着的是“对象的引用”(指针)。什么意思,不是里面放着一个y对象吗?那就不是了,这也是与基本数据类型不同,而加以分类出来的原因。所谓,对象的引用,可理解成对象存放的地址。想象一下。你打开这个叫y的盒子一看,里面放的不是y对象,而是一张小纸条,纸条上有段话:杭州市下城区永佳南苑N号,是个地址,你顺着这个地址就能找到这个“对象”了。按术语来说,对象存储在内存的堆里。

Tags:js   数据类型   变量   技术