1.typeofjavascript
缺點:對null和Array等類型的檢測不是很方便java
typeof null; //"object" typeof []; //"object"
2.instanceof測試
缺點:1.只適用於對象類型prototype
2.只要當前的這個類在實例的原型鏈上,檢測出來的結果都是true對象
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.constructorblog
注意:在類繼承時會出錯 繼承
function A(){}; function B(){}; A.prototype = new B(); var aObj = new A(); aObj.constructor === B; //true; aObj.constructor === A; //false;
4.自定義方法實現(比較通用) ip
function getType(o){ return Object.prototype.toString.call(o).slice(8,-1); }
測試:原型鏈
getType(null); //"Null" getType(undefined); //"Undefined" getType([]); //"Array" getType({}); //"Object" getType(()=>{}); //"Function" getType(document.createElement('div')); //"HTMLDivElement"