数据类型及其分类
一、ES5中数据类型(6)及其划分(2)
基本(原始)类型:Number、String、Boolean、Null、Undefined
引用(对象)类型:Object(Array、Function、Date等)
二、判断数据类型的方法:
1.typeof操作符 注意:返回的是一个字符串 两种写法: typeof ... 或者typeof(...)
但是,Date之类的返回是'Object' typeof(Null)——>Object
2.如果想判断具体的类型请参考使用instanceof ... instanceof String/Date...
三、数据变量和类型
1.JS中的变量没有类型 在对变量执行 typeof 操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型。
2.JS中的数据值有类型 变量可以随时持有任何类型的值
3.注意new有无的区别
定义一个函数,例: var c=Studet("JACK"); undefined var d=new Student("Lucy"); Object
四、变量与内存
变量声明指向一块内存空间,用于保存数据
变量赋值:向变量指向的内存空间中存放数据
划分两种内存空间:堆内存(引用数据类型,存储更为复杂的数据结构的类型)、栈内存(基本数据类型,一般数据量小)
五、数据类型的区别
基本类型与引用类型的区别:访问机制、变量赋值、比较变量、参数传递
基本类型直接访问;引用类型通过引用访问,不能直接访问 (有点类似于Java)
判断:==和===
引用类型是判断所指向的内存空间(地址)是否相同(引用比较)
==粗略比较,引用和基本比较的话,引用类型会降级
=== 数值和类型
ps:若是两个引用类型比较,不管是不是一个类型,== ===都是false,因为比较的是地址,在同一级上,也不会降级