JS数据类型判断

 1 .typeof

typeof 对于基本数据类型判断是没有问题的,但是遇到引用数据类型

(如:Array)是不起作用  返回的是一个字符串类型的

2 . instanceof

能够把引用数据类型判断准确  但是不能判断出基本数据类型

(判断 new 关键字创建的引用数据类型  

不考虑 null undefined(这两个比较特殊)以对象字面量创建的基本数据类型)   是一个操作符  返回的是一个truefalse 

 3 .constructor

似乎完全可以应对基本数据类型和引用数据类型 但如果声明了一个构造函数,

并且把他的原型指向了 Array 的原型,所以这种情况下,constructor 也显得力不从

constructor是prototype对象上的属性,指向构造函数。根据实例对象寻找属性的顺序,若实例对象上没有实例属性或方法时,

就去原型链上寻找,因此,实例对象也是能使用constructor属性的。

4 . 使用Object.prototype.toString.call()检测对象类型

可以通过toString() 来获取每个对象的类型。为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式来调用,传递要检查的对象作为第一个参数,称为thisArg。

5 .无敌万能的方法:jquery.type()
如果对象是undefined或null,则返回相应的“undefined”或“null”。

原文地址:https://www.cnblogs.com/swjRH/p/13591471.html