缺點:對null和Array等類型的檢測不是很方便
Js代碼
typeof null; //"object"
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代碼
getType(null); //"Null"
getType(undefined); //"Undefined"
getType([]); //"Array"
getType({}); //"Object"
getType(()=>{}); //"Function"
getType(document.createElement('div')); //"HTMLDivElement"
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com