typeof
typeof 可以判断的数据类型有Number、String、Boolean、Symbol、undefined、Object、Function
注意点:
typeof会将null判断为object,原因是因为表达类型信息的数据码中null和object的是一样的
Object.prototype.toString.call
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]
Object.prototype.toString.call(null) //[Object Null]
Object.prototype.toString.call(undefined) //[Object Undefined]
Object.prototype.toString.call(Symbol(1)) //[Object Symbol]
instanceof
instanceof主要是用来判断一个实例是否属于某种类型,或者是判断一个实例是否是其父类型或者祖先类型的实例;
其实就是判断右边变量的prototype是否在左边变量的原型链上