instanceof
instanceof运算符用来返回一个对象在其原型链中是否存在一个构造函数的prototype属性
object instanceof constractor
instanceof用来检测constructor.prototype是否存在于object的原型链上,其返回值是true / false。
typeof
typeof运算符返回一个字符串,指未经计算的操作数的类型:String、Boolean、Undefined、Null、Number、Symbel
两者区别
instanceof只能用来判断对象和函数,不能用来判断数字和字符串等
typeof不能用于判断是否为数组,因为都会返回Object,判断数组可以用下面几种方式:
-
constructor
arr.prototype.constructor = Array -
instanceof
arr instanceof Array -
Array.isArray
Array.isArray(arr) -
Object.prototype.toString.call()
Object.prototype.toString.call() // object/array