基本數(shù)據(jù)類型檢測
返回類型有:number, boolean, string, undefined, object, function
var i = 2; console.log(typeof i); //number
var b = true; console.log(typeof b); //boolean
var s = "hello"; console.log(typeof s); //string
var n = null; console.log(typeof n); //object
var u; console.log(typeof u); //undefined
var o = new Object(); console.log(typeof o); //object
注:typeof NaN
返回的結(jié)果是number
引用類型檢測
var iO = new Number(2); console.log(iO instanceof Number); //true
var bO = new Boolean(true); console.log(bO instanceof Boolean); //true
var sO = new String("hello"); console.log(sO instanceof String); //true
var a = [1,2,3]; console.log(a instanceof Array); //true
var aO = new Array(1,2,3); console.log(aO instanceof Array); //true
注:用typeof
檢測對象類型的結(jié)果都為object
, 而用instanceof
檢測對應的基本類型的結(jié)果均為false
在
aO instanceof Array
中檢測aO是否是一個數(shù)組時乐纸,首先aO必須是一個數(shù)組端衰,而且還必須與Array構造函數(shù)在同個全局作用域中(Array是window的屬性)裁厅。如果aO是在另一個fram中定義的數(shù)組,則檢測結(jié)果也為false
所以引用類型檢測時應該使用如下方法檢測:
function isArray(value){
return Object.prototype.toString.call(value) == "[object Array]";
}