JavaScript判断变量类型的四种方法

typeof(根据二进制判断):

常用于判断基础数据类型,对于引用数据类型除了function 返回 ‘function’,其余都返回 ‘object’ (typeof null === object)

instanceof:

主要用于区分引用数据类型,检测构造函数的 prototype 属性是否出现在某个实例对象的 原型链 上

语法:object(某个实例对象) instenceof  constructor(构造函数)

不适用于简单数据类型的检测,检测过程繁琐且无法检测简单数据类型中的 undefined、null、symbol

Object.prototype.toString.call():

适用于所有的类型检测,且检测精准

语法:Object.prototype.toString.call(数据) ;返回的是该数据类型的字符串。

原理:Object.prototype.toString 表示一个返回对象类型的字符串,不同的数据对toString进行了一个重写,call() 方法可以改变this的指向,

把Object.prototype.toString方法指向不同的数据类型上, 返回不同的结果

constructor(用于引用数据类型):

用于检测引用数据类型,检测方法是获取实例的构造函数,判断和某个类是否相同,如果相同就说明该数据是符合那个数据类型的

这种方法不会把原型链上的其他类也加入进来,避免了原型链的干扰

引用:https://www.nowcoder.com/exam/interview/detail?questionClassifyId=0&questionId=2412354&questionJobId=156&type=1

posted @ 2023-03-04 23:25  Du9191  阅读(74)  评论(0编辑  收藏  举报