淺談JavaScript資料類型檢測

來源:互聯網
上載者:User

1)、通常在檢測JavaScript中類型的時候都是使用typeof運算子,然後返回一個識別運算數類型的字串,對於任何的變數來說,使用typeof 運算子返回結果只有6中類型

1、number 2、string 3、boolean 4、object 5、function 6 、undefined。 但是在大家可以試試在使用typeof檢測null值的時候,返回的是object,這個有點不適合,大家想,null應該是沒有類型的說法的,所以一般人在處理null的類型判斷都是做一個方法

function type(oo){   return (oo ==null) ? "null":(typeof oo);}

2)、但是typeof 不能夠檢測複雜的資料類型的,比如運算式對象,日期對象,數學對象。

它只能夠返回一個object類型,並不能知道具體到日期什麼的,

javascript中一種判斷資料類型的方法,constructor屬性,使用方法是

var value=underfined;

alert(value.constructor);

但是數值直接量是不能這樣用的 ,需要添加一個小括弧,這樣的話,小括弧運算子能把數值直接量轉換為對象,有點像Java中的Integer 和 int 類型一樣,

alert((30).constructor)

3)、使用toString()方法也是可以檢測物件類型,而且是最準確的,通常在是把對象轉成字串,然後檢測下字串中是否包含了數組所特有的標準字元,

返回的字串形式如下

[object calss]

object 是通用類型,那麼class 表示對象的內部類型,內部類型的名稱與該對象的的建構函式名是對應的,比如Array對象的class 是Array,Date對象的class “Date”

具體寫法如下,

   var date = new Date();   alert(typeof date);   var m=Object.prototype.toString;   alert(m.apply(date));

奉獻一段通用的類型檢測代碼

function type(o){

var  _toString = Object.prototype.toString;

var _type ={

"underfined":"underfined",

"number":"number",

"boolean":"boolean",

"string":"string",

''[object Function] ":"function",

''[object RegExp] ":"RegExp",

''[object Array] ":"Array",

''[object Date] ":"Date",

''[object Error] ":"Error"

}

return _type[typeof o] || _type[_toString.call(o)] || (o?"object":"null")

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.