第一种: typeof;
一般数据类型中的number,string,boolean,undefined都可以用typeof检测数据类型,分别返回他们对应的数据类型;其中的null比较特殊,会返回object;引用数据类型都返回小写的object;
第二种:instanceof,最常用于数组;
除了使用typeof来判断,还可以使用instanceof。instanceof运算符需要指定一个构造函数,或者说指定一个特定的类型,它用来判断这个构造函数的原型是否在给定对象的原型链上
第三种:constructor ,构造器
构造函数(Constructor)在对象创建或者实例化时候被调用的方法。在Javascript语言中,constructor属性是专门为function而设计的,它存在于每一个function的prototype属性中。这个constructor保存了指向function的一个引用。很少用到
第四种:Object.prototype.toString.call() 检测对象类型
所有的子类都有toString方法,而Object.prototype上的toString是最原始的方法,任何数据类型通过改变this都可以调用Object.prototype.toString