javascript 型別檢測

2021-07-03 20:12:29 字數 1562 閱讀 5961

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...