數據類型檢測的幾種方式

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"
相關文章
相關標籤/搜索