JavaScript中检测变量类型的两种方法:typeof与constructor
本文介绍JavaScript中检测变量类型的两种常用方法。第一种是typeof运算符,适用于基本数据类型,但无法区分对象、数组和自定义类。第二种是通过constructor属性判断,能准确识别具体类型。文章对比了两种方法的适用场景与局限性,建议根据实际需求选择合适的方式。
在JavaScript中,检测变量类型通常有两种常用方法。
使用typeof运算符检测类型
第一种方法是使用typeof运算符。
其语法格式为:typeof 变量。
具体用法示例如下:if( typeof 变量 == "类型标识") { ... }。
以下是常见数据类型对应的typeof返回值示例:
{an:"object"} : object
["an","array"] : object
function() {} : function
"a string" : string
55 : number
true : boolean
new User() : object
从上述示例可以看出,typeof运算符在判断数组、普通对象和自定义类实例时,均返回“object”,无法进一步区分具体类型。因此,若需明确判断对象是普通对象、数组还是自定义类实例,则需采用第二种方法。
使用constructor属性检测类型
第二种方法是利用构造函数属性(constructor)进行判断。
其语法格式为:变量.constructor。
具体用法示例如下:if(变量.constructor == "类型标识符") { ... }。
{an:"object"} : Object
["an","array"] : Array
function() {} : Function
"a string" : String
55 : Number
true : Boolean
new User() : User
通过上述示例可以看出,利用constructor属性可以准确获取每种数据的类型。因此,在需要精确判断类型的场景下,优先使用变量的constructor属性更为合适。
不过,在某些情况下,使用typeof判断undefined类型更为简便:
if(typeof 变量 == "undefined") { ... }
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
