1.typeof
缺点:对null和Array等类型的检测不是很方便
1 typeof null; //"object" 2 typeof []; //"object"
2.instanceof
缺点:1.只适用于对象类型
2.只要当前的这个类在实例的原型链上,检测出来的结果都是true
Js代码
123 instanceof Number; //false null instanceof null; //TypeError null instanceof Object; //false function A(){} function B(){} A.prototype=new B(); var aObj=new A(); aObj instanceof B;//true aObj instanceof A;//true
3.constructor
注意:在类继承时会出错
Js代码
function A(){}; function B(){}; A.prototype = new B(); var aObj = new A(); aObj.constructor === B; //true; aObj.constructor === A; //false;
4.自定义方法实现(比较通用)
Js代码
function getType(o){ return Object.prototype.toString.call(o).slice(8,-1); }
测试:
Js代码
1 getType(null); //"Null" 2 getType(undefined); //"Undefined" 3 getType([]); //"Array" 4 getType({}); //"Object" 5 getType(()=>{}); //"Function" 6 getType(document.createElement(‘div‘)); //"HTMLDivElement"
时间: 2024-12-26 00:45:59