typeof
作用:用於判斷一個一個表達式,(對象或者原始值),返回一個字符串。
用法 typeof a
類型 結果
Undefined : “undefined”
Null : “object” (歷史遺留問題)
Boolean: “boolean”
Number : “number”
String : “string”
Symbol (ECMAScript 6 新增): “symbol”
函數對象 : “function”
任何其他對象 : “object”
例子:
console.log(typeof 1); // number
console.log(typeof test); // function
console.log(typeof "yunxi"); // string
console.log(typeof undefined); // undefined
console.log(typeof []); // object
console.log(typeof /\d+/g); // object
instanceof
作用:instanceof 運算符用來測試一個對象在其原型鏈中是否存在一個構造函數的 prototype 屬性。
用法:object **instanceof** constructor
前面是個對象,後面是一個構造函數。而且返回的是布爾型的,不是true就是false。
常見例子:
判斷是否爲數組[] instanceof Array //true
typeof 與instanceof結合判斷數據類型
我們希望有個方法能將js中所有內置對象進行判斷
Object Boolean String Number Function Array RegExp Date Error Null,Undefined
function getObjType(obj) {
if(obj === null){
return "null";
}else if(typeof obj === "object"){
if(obj instanceof Array){
return "array";
} else if(obj instanceof RegExp){
return "regExp";
}else if(obj instanceof Date){
return "date";
}else if(obj instanceof Error){
return "error";
} else{
return "object";
}
}else{
return typeof obj;
}
}
測試結果: