js的数据类型分类
1.基本数据(值)类型
* ·string
* ·number
* ·boolean
* ·null
* ·undefi
2.对象数据(引用)类型
* ·Object
* ·Function
* ·Array
判断类型的方法
typeof 用来判断基本数据类型,返回的是数据类型的字符串表达式,可以用来判断基本数据类型的undefined,number,string,boolean,也可以判断引用数据类型的function,但是无法判断是null和array,因为返回的都是object
instanceof 用来判断对象数据类型
示例代码
var a;
console.log(typeof a==="undefined");//返回true 用===判断数据类型要使用数据类型的字符串表达式
var b=3;
console.log(b,typeof b);//返回number
var c=null;
console.log(c,typeof c);//用typeof无法来判断null类型,只能显示为object
var b={}
console.log(b instanceof Object); //true
var c=[1,2,3]
console.log(c instanceof Array); //true
var d=function(){
}
console.log(typeof d);//function
console.log(d instanceof Function); //true
区分变量类型和数据类型
数据的类型:
·基本类型
·对象类型
变量的类型(变量内存值的类型):
·基本类型:保存就是基本类型的数据
·引用类型:保存的是地址值
这里先说一下两种类型的内存区别:
1、基本类型
基本类型有Undefined、Null、Boolean、Number 和String。这些类型在内存中分别占有固定大小的空间,他们的值保存在栈空间,我们通过按值来访问的。
2、引用类型
引用类型,值大小不固定,栈内存中存放地址指向堆内存中的对象。是按引用访问的。如下图所示:栈内存中存放的只是该对象的访问地址,在堆内存中为这个值分配空间。由于这种值的大小不固定,因此不能把它们保存到栈内存中。但内存地址大小的固定的,因此可以将内存地址保存在栈内存中。 这样,当查询引用类型的变量时, 先从栈中读取内存地址, 然后再通过地址找到堆中的值。对于这种,我们把它叫做按引用访问。