Javascript数据类型检测的四种方法

170 阅读1分钟

JS中的数据类型

1.Number 数字

2.String 字符串

3.Boolean 布尔值

3.Null 空对象指针

4.Nndefined 未定义

5.Bigint 大数(ES6新增)

6.symbol 唯一值

引用数据类型

标准普通对象 Object

标准特殊对象 Array、RegExp、Date、Math、Error...

非标准特殊对象 Number、String、Boolean...JS中的基类

可调用/可执行对象 函数 function

数据类型检测方法

1.typeof

最常用的检测方法,缺点就是无法细分对象,检测null的结果也是Object。这个是浏览器的BUG:所有的值在计算中都已二进制编码存储,浏览器中把前三位是000的当做对象,而null的二进制前三位就是000,所以被识别为对象

typeof(1);//Number
typeof('1');//String
typeof([]);//Object
typeof({});//Object
typeof(null);//Object

2.instanceof 用来检测当前值是否在某一个类的原型,但是只能用于引用数据类型 image.png

3.constructor 指向当前对象的构造函数本身,缺点:constructor可以被更改

image.png 4.Object.prototype.toString.call() 目前来说最标准的类型检测方法,但是缺点是无法细分谁是谁的对象

image.png