為了識(shí)別原始類(lèi)型,我們使用 typeof
運(yùn)算符。
function reflect(value) {
return value;
}
console.log(typeof reflect); // "function"
以下代碼顯示在參考類(lèi)型上應(yīng)用 typeof
運(yùn)算符變量返回對(duì)象。
var items = new Array();
var now = new Date();
var error = new Error("Error.");
var func = new Function("console.log("Hi");");
var object = new Object();
var re = new RegExp("\\d+");
//from hgci.cn
console.log(typeof items);
console.log(typeof now);
console.log(typeof error);
console.log(typeof func);
console.log(typeof object);
console.log(typeof re);
上面的代碼生成以下結(jié)果。
這不是很有用,因?yàn)槲覀冇袝r(shí)想知道對(duì)象表示的類(lèi)型。
instanceof
運(yùn)算符接受一個(gè)對(duì)象和一個(gè)構(gòu)造函數(shù)參數(shù)。
當(dāng)值是構(gòu)造函數(shù)指定的類(lèi)型的實(shí)例時(shí),instanceof returns true; 否則,它返回false,你可以看到這里:
var items = [];
var object = {};
// hgci.cn
function reflect(value) {
return value;
}
console.log(items instanceof Array); // true
console.log(object instanceof Object); // true
console.log(reflect instanceof Function); // true
上面的代碼生成以下結(jié)果。
instanceof
運(yùn)算符可以識(shí)別繼承的類(lèi)型。
每個(gè)對(duì)象都是一個(gè)Object的實(shí)例,因?yàn)槊總€(gè)引用類(lèi)型都繼承自O(shè)bject。
以下代碼檢查使用instanceof創(chuàng)建的三個(gè)引用:
var items = [];
var object = {};
// hgci.cn
function reflect(value) {
return value;
}
console.log(items instanceof Array); // true
console.log(items instanceof Object); // true
console.log(object instanceof Object); // true
console.log(object instanceof Array); // false
console.log(reflect instanceof Function); // true
console.log(reflect instanceof Object); // true
上面的代碼生成以下結(jié)果。
此方法在收到時(shí)返回true一個(gè)本地?cái)?shù)組的值。
var items = [];
console.log(Array.isArray(items)); // true
上面的代碼生成以下結(jié)果。
更多建議: