JavaScript 判断数据类型的两种常用方法

作者:青柠

时间:2026-10-30

浏览:623

本文介绍JavaScript中判断数据类型的两种核心方法。首先解析typeof运算符对基础类型及特殊值的返回结果,指出其在区分对象、数组和null时的局限。随后详细讲解利用Object.prototype.toString.call进行精确类型检测的原理与实现,并提供封装工具函数的示例代码,适用于插件开发中的DOM节点及各类对象识别。

文章目录

JavaScript 判断数据类型的两种常用方法

在JavaScript开发中,判断数据类型是常见需求。通常使用typeof运算符,其语法格式支持两种写法:typeof xxx 或 typeof(xxx)。

具体表现如下所示。

执行 typeof 2 会返回 number。

执行 typeof null 会返回 object。

执行 typeof {} 会返回 object。

执行 typeof [] 会返回 object。

执行 typeof (function(){}) 会返回 function。

执行 typeof undefined 会返回 undefined。

执行 typeof '222' 会返回 string。

执行 typeof true 会返回 boolean。

上述结果涵盖了JavaScript中的五种基本数据类型:number、string、boolean、undefined、object,以及函数类型 function。

使用 Object.prototype.toString 精确区分类型

此时读者可能会产生疑问:如何准确区分对象、数组和 null 呢?

为此,我们需要引入另一个工具:Object.prototype.toString.call。

这是对象原型上的一个原生扩展方法,用于更精确地区分数据类型。

通过以下示例进行验证:

var gettype=Object.prototype.toString

gettype.call('aaaa') 输出 [object String]

gettype.call(2222) 输出 [object Number]

gettype.call(true) 输出 [object Boolean]

gettype.call(undefined) 输出 [object Undefined]

gettype.call(null) 输出 [object Null]

gettype.call({}) 输出 [object Object]

gettype.call([]) 输出 [object Array]

gettype.call(function(){}) 输出 [object Function]

通过这种方式,前文提到的区分问题得以解决。

实际上,JavaScript 中还存在其他多种类型判断场景。

例如 [object HTMLDivElement] 表示 div 对象,[object HTMLBodyElement] 表示 body 对象,[object Document](IE浏览器)或 [object HTMLDocument](Firefox、Google浏览器)等。

这些 DOM 节点的判断在编写插件时非常有用。

可以将其封装为如下方法:

类型检测工具函数封装示例


var  gettype=Object.prototype.toString

var  utility={

isObj:function(o){

    return  gettype.call(o)=="[object Object]";

 },

     isArray:function(o){

        return  gettype.call(o)=="[object Array]";

     },

     isNULL:function(o){

        return  gettype.call(o)=="[object Null]";

     },

     isDocument:function(){

        return  gettype.call(o)=="[object Document]"|| [object HTMLDocument];

     }

     ........

}

以上关于 JavaScript 判断各种数据类型的简单方法分享完毕,希望能为读者提供参考,并欢迎大家支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章