面试题1说一下常见的检测数据类型的几种方式

70 阅读1分钟

44、说一下常见的检测数据类型的几种方式?

1.typeof  其中数组、对象、null都会被判断为Object,其他判断都正确

2.instanceof 只能判断引用数据类型,不能判断基本数据类型 是谁的实例
arr.instanceof Array---TRUE
obj.instanceof Array---FALSE
区分对象和数组
(万物皆对象)arr instanceof Object--TRUE
3.constructor 它有2个作用 
一是判断数据的类型,不可以区分null,可以区分array和object,
二是对象实例通过constructor对象访问它的构造函数。
需要注意的事情是如果创建一个对象来改变它的原型,constructor就不能来判断数据类型了
obj.constructor===Object---TRUE
arr.constructor===Array---TRUE
4.Object.prototype.toString.call()万能的数据类型检测
例:判断参数是不是一个对象
function ajax(obj){
if(object.prototype.toString.call(obj)===[object Object]{
console.log('是一个对象')
}else{
console.log('不是一个对象')
}