一、Object.prototype.toString.call(obj)
Object.prototype.toString()可以通用的来判断原始数据类型和引用数据类型,基本包括如下类型
[object Number] [object String] [object Undefined] [object Boolean] [object Object] [object Array] [object Function]
二、typeof
typeof用以获取一个变量或者表达式的类型,返回数据类型:objcct number function boolean undefined string六种
特别要注意的是:当变量为null "object"
三、instanceof
以上两个方法都是判断数据类型是否是基础数据类型或者引用数据类型的,当是要判断数据是否为某个类创建的。就必须用到instanceof。
instanceof用来判断某个构造函数的prototype是否在要检测对象的原型链上。
let foo = new Foo();
console.log(foo instanceof Foo); //true
在多层继承关系中,instanceof 运算符同样适用