js 如何判断类型 2021-03-25

js 中 数据类型分为基本类型与引用类型。
JS的基本类型共有七种:bigInt(bigInt是一种内置对象,是处symbol外的第二个内置类型)、number、string、boolen、symbol、undefined、null。引用类型有对象(object)包括基本的对象、函数(Function)、数组(Array)和内置对象(Data等)。

方法一    判断基础类型 可以用typeof 方式,如  typeof 2  返回number
方法二    判断引用类型 需要用到 Object.prototype.toString.call(xxx)的形式,返回“[object 类型]'的形式。
如下:
Object.prototype.toString.call({a:1})// "[object Object]"
Object.prototype.toString.call([1,2])// "[object Array]"
Object.prototype.toString.call(newDate)// "[object Date]"
Object.prototype.toString.call(function(){})// "[object Function]"
Object.prototype.toString.call(arguments)// "[object Arguments]"   //arguments 为函数的参数对象

ps: 为什么不直接调用toString方法,而是接用Object的原型对象prototype的toString
因为 只有object对象形式才能返回“[object Object]'的形式,
其它,例如[1,2,4].toString() 返回‘1,2,4'这样的字符串,
const f = function() {} 
 f.toString()  // 返回"function() {}"
方法三、obj instanceof Object ,可以左边放你要判断的内容,右边放类型来进行JS类型判断,只能用来判断复杂数据类型,因为instanceof 是用于检测构造函数(右边)的 prototype 属性是否出现在某个实例对象(左边)的原型链上。

[1,2]  instanceof   Array // true
(function(){})  instanceof   Function  // true
({a:1})  instanceof  Object  // true
(newDate)  instanceof   Date// true

obj instanceof Object方法也可以判断内置对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容