JS-判断js数据类型的几种方式

JavaScript010

JS-判断js数据类型的几种方式,第1张

js的数据类型分为两大类:

基本类型:也称为简单类型,由于其占据空间固定,是简单的数据段,为了便于提升变量查询速度, 将其存储在栈中,即按值访问

引用类型:也称为复杂类型,由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此, 其值存储在堆中 ,而存储在变量处的值,是一个指针,指向存储对象的内存处,即 按址访问 。引用类型除 Object 外,还包括 Function 、Array、RegExp、Date 等等。

引用类型和基本类型的区别:

1、基本类型按 访问

需要注意的是:

A instanceof B用来判断A是否属于B的实例,返回true或者false。

需要注意的是:

ES5中可以用Array.isArray([])来准确判断数组的实例

当创建变量b时,js会在b的原型上添加constructor属性,指向b的引用

js在创建内置对象时,也是这么做的:

Object对象有tostring方法返回:

而非object对象,则需要call/apply才能正确返回类型,返回格式为字符串类型的 "[object 数据类型xxx]" :

以上几种方式可以在不同场景使用。

通过type of 变量名的方式获取变量的数据类型。

因为js变量是松散类型(即弱类型)的,可以用来保存任何类型的数据,所以用typeof 用来检测给定变量的数据类型,可能的返回值有:

1. 'undefined' --- 这个值未定义;

2. 'boolean'    --- 这个值是布尔值;

3. 'string'        --- 这个值是字符串;

4. 'number'     --- 这个值是数值;

5. 'object'       --- 这个值是对象或null;

6. 'function'    --- 这个值是函数。

举例:

 var aa = 'test string'   

 alert(typeof aa)  // 'string'   

 alert(typeof 90)  // 'number'

js基本的数据类型 :数字类型,字符串型,布尔型,undefined,null ,对象类型,数组

1、数字类型(Number)

只有一种数字类型,数字 可以是小数 ,也可以的整数

以0开头 默认使用8进制来表示我的这个数字

以0x开头 默认使用16进制来表述我的这个数字

如果以-开头 默认以负数

如果我带有e:以科学计数法来解析我的这个数字

2、字符串型(string)

字符串是存储字符的变量,用来表示文本的数据类型,程序中的字符串是包含单引号/双引号的,由单引号来界定我双引号中包含的字符串 反过来

es6模板字符串("`")

3、布尔类型(boolean)

一般是用在流程控制语句中,字符串和数字类型都是无穷多个,然而我们的布尔数据类型只有两个:true 和 false

这两个个值一般用于说明某个事物是真或者假

js一般用布尔类型来比较所得到的结果

4、null(空)

关键字null是一个特殊的值,它表示变量为空值,用来定义空的或者是不存在的引用。

如果试图去引用一个没有定义的值,就会返回一个null。

这里注意一点:null并不等于"" 或者0

5、undefined(未定义)

这个值表示变量不含有值,没有定义的值,或者被定义了一个不存在的属性值