Typeof 数据类型
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术: Javasrcipt
作者:薛裕全
撰写时间:2022/3/07
typeof
typeof()一般用于判断基本类型除外null, typeof 也可以判断 function , 但判断 Array,
Error, null 这几个引用类型时对会被 typeof 判断为 object ,所以如果想判断这几种数据类型,就不能使用 typeof 了,比较有局限性instanceof。
instanceof 检测某一个实例是否属于一个类
例如:
判断 obj 是否是 Fn 的实例,是则返回 true ,否则返回 false
, instanceof 检测的是原型,内部机制是通过判断对象的原型链中是否有类型的原型
注意: instanceof 后面一定要是对象类型,并且大小写不能写错 instanceof 有个弊端就是,对于number,string,boolean 这三种类型只能通过构造函数定义
let num = new Number(123);
console.log(num instance of Number);
如果使用
var num = 12
console.log(num instanceof Number)为 则为 false ,还需要注意, null 和 和 undefined 都返回false, 这是因为他们的类型就是自己本身,不是 t object 创建出来的他们,所以返回了 false
toString() 是对象的原型方法,调用该方法, 默认返回当前对象的 [[class]] ,这是一个内部属性,其格式为 [object xxx] 其中 x xxx 就是对象的类型,对于 t object 对象,直接调用 toString()
就能返回 [object object] 对于其他对象,则需要 call,apply, 来调用才能返回正确类型信息
封装一个获取变量准确类型的函数