1、檢測字串、數值、布林值、undefined、function 使用typeof(在safari和chrome中檢測正則也會返回 "function")
2、檢測null 應用「===」
3、檢測其它物件:
方法一:利用instanceof/constructor
(再某些ie版本中存在跨iframe問題,每個iframe下都有自己的一套原型鏈,跨frame例項化的物件彼此是不共享原型鏈)
[html]view plain
copy
alert(a instanceof object)
alert(a instanceof array)
alert(a instanceof regexp)
alert(a.constructor
==array)
例如:方法二:利用 object.prototype.tostring.call()
(解決了方法一跨iframe 失效的問題)
例如:
[html]view plain
copy
object.prototype.tostring.call ({}) //"[objectobject]"
object.prototype.tostring.call ([1,2,3,4]); //"[objectarray]"
object.prototype.tostring.call(newdate()); //"[objectdate]"
object.prototype.tostring.call(/^hello/); //"[objectregexp]"
object.prototype.tostring.call(newerror()) //"[objecterror]"
object.prototype.tostring.call(newnumber()) //"[objectnumber]"
參考jquery解決方案
[html]view plain
copy
var
class2type
= {};
$.each("boolean number string function array date regexp object".split(" "), function (i, name) );
$.type
= function
(obj) ;
另外,ecmascript 5 定義了乙個新方法array.isarray(),該函式在引數為陣列時返回true,例如
array.isarray() // true
所以我們可以定義:
[html]view plain
copy
if(typeof
array.isarray
=="undefined")
}
源引:
JavaScript型別檢測
型別檢測方法如下 typeof,instanceof,object.prototype.tostring,constructor,duck type.1.部分示例如下 typeof 100 number typeof true boolean typeof function function typ...
JavaScript檢測型別
es有五種簡單的資料型別 undefined,null,boolean,number和string,還有一種複雜的資料型別object。對乙個值使用typeof操作符可能返回下列某些字串 undefined 如果這個值未定義 boolean 如果這個值是布林值 string 如果這個值是字串 num...
JavaScript 型別檢測
返回乙個字串,來表示資料的型別 typeof 運算子用來檢測建構函式是否存在與檢測物件的原型鏈上,返回布林 instanceof 精確判斷物件的型別,使用call指向 this 檢測物件,string和array構造重寫了tostring 方法 object.prototype.tostring.c...