對於javascript有六種數據類型,其中包括五種基本類型(string,boolean,number,undefined,null),跟一種引用類型(Object)
對於基本類型,可能大家都比較熟悉,基本概念就不做過多的介紹。
引用類型:一組屬性和方法的集合。常見的有:function、array、date等
前四種基本類型(string,boolean,number,undefined)的檢測,都可以用 typeof 來進行判斷變量的數據類型,例如:
但是有一種比較特殊,那就是null了,用typeof檢測 null ,null 表示的是對一個空對象的引用,返回的是對象類型(object),例如:
對於這個問題,據說是歷史遺留的BUG,所以我們只要記住這個就行了。但是對於 null這種類型 我們要如何判斷呢
我們可以恆等於(===)來判斷變量是否爲null,例如:
對於引用類型(Object)的檢測,可以使用 instanceof 或者 constructor 來檢測對象是否爲引用類型(Object)例如
但是有時候,使用instanceof 跟 constructor,不能很準確的判斷出對象的類型,在不同的iframe下,instanceof跟constructor就不行了,因爲不同的執行環境原型鏈不同,所以即使都是數組或者其它對象,都會返回false。這樣下來判斷各種類型的數據類型,用typeof、instanceof、constructor都沒辦法準確地判斷所有數據類型。所以可以用Object.prototype.toString.call 精確地判斷各種數據類型,例如:
以上就是JavaScript的幾種數據類型的判斷了,本人學生黨,對本文章有不同見解或發現本文章有錯誤,歡迎各位大神指正