js中可以通過typeof來判斷基本的數(shù)據(jù)類型。
數(shù)據(jù)類型
js的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型泻红,基本數(shù)據(jù)類型又有5種基本數(shù)據(jù)類型和1種引用數(shù)據(jù)類型夭禽。
基本數(shù)據(jù)類型
5種基本數(shù)據(jù)類型分別為:數(shù)值型(Number)、字符串型(String)谊路、布爾型(Boolean)讹躯、Undefined、Null缠劝。
引用數(shù)據(jù)類型
引用數(shù)據(jù)類型又可成為對象類型潮梯,具體有下面幾個類型:數(shù)組、對象惨恭、函數(shù)秉馏。
數(shù)據(jù)類型檢測
js給我們提供了數(shù)據(jù)類型檢測的函數(shù)typeof。不過這個工具函數(shù)只可以給我們返回基本的數(shù)據(jù)類型脱羡,如果用于檢測引用數(shù)據(jù)類型的時候萝究,可能會不準確。typeof函數(shù)的返回值是一個字符串锉罐,具體如下:
“undefined”:如果這個值未定義
“boolean”:如果這個是布爾值
“string”:如果這個值是字符串
“number”:如果這個值是數(shù)值
“function”:如果這個值是函數(shù)
“object”:如果這個值是對象或者null
數(shù)組類型的檢測
檢測數(shù)據(jù)的數(shù)據(jù)類型帆竹,是一個非常典型的問題,使用的場景也很多脓规。js給我們提供了instanceof方法栽连,用于檢測某個變量是否術語某個類型。
if(value instanceof Array){
//一些操作
}
意思是檢測value是不是Array類型侨舆,是就返回true秒紧,不是就返回false舷暮。
使用instanceof的時候,如果是在一個網(wǎng)頁中噩茄,或者在一個全局作用域中,是沒有任何問題的复颈,但如果一個網(wǎng)頁中包含多個框架绩聘,那實際上就存在兩個不同的全局執(zhí)行環(huán)境,也就是存在了兩個以上不同的Array構造函數(shù)耗啦。
ES5中新增了一個方法Array.isArray()方法用于檢測某個值到底是不是數(shù)組凿菩。
if(Array.isArray(value)){
//一些操作
}
意思是如果value是Array,就返回true帜讲,否則返回false衅谷。