一、typeof 可以判断变量属于哪种类型
一般可以判断 string function number object boolean undefined symbol 7种类型
但是不能判断object具体属于哪种数据类型
二、instanceof 主要判断实例是否属于某种类型
let person = function () {}
let programmer = function () {}
programmer.prototype = new person()
let nicole = new programmer()
nicole instanceof person // true
nicole instanceof programmer // true
即可以用如下方法判别类型归属
function Foo() {}
Object instanceof Object // true
Function instanceof Function // true
Function instanceof Object // true
Foo instanceof Foo // false
Foo instanceof Object // true
Foo instanceof Function // true
三、Object.prototype.toString.call(obj)判断
Object.prototype.toString.call(1) // "[object Number]"
Object.prototype.toString.call('hi') // "[object String]"
Object.prototype.toString.call({a:'hi'}) // "[object Object]"
Object.prototype.toString.call([1,'a']) // "[object Array]"
Object.prototype.toString.call(true) // "[object Boolean]"
Object.prototype.toString.call(() => {}) // "[object Function]"