Javascript是一門動態語言,因此在程序運行過程中會出現很多不確定性和變量類型不明確的情況。為了更好地加以控制,Javascript引入了typeof函數,這個函數可以對待檢測變量或者數據類型進行判斷。下面我們來看看sizeof的具體用法和效果:
typeof 12 //輸出 'number' typeof 'hello' //輸出 'string' typeof true //輸出 'boolean' typeof null //輸出 'object' typeof undefined //輸出 'undefined' typeof {} //輸出 'object' typeof [] //輸出 'object' typeof console.log //輸出 'function'
從上面的例子可以看出,typeof可以返回一個變量或者數據類型的字符串形式,包括number、string、boolean、object、undefined、function等幾種類型。在實際開發過程中,我們經常會使用typeof來判斷一個值的數據類型,以此來實現代碼分支控制,比如:
var a = 'hello' if(typeof a === 'string'){ console.log('a is a string') }else{ console.log('a is not a string') }
除了對變量的數據類型進行檢測,typeof還可以對對象(包括null)和函數進行檢測。對于函數來說,如果使用typeof的結果是‘function’,則說明這個對象是一個函數:
function hello(){ console.log('hello world') } if(typeof hello === 'function'){ console.log('hello is a function') }else{ console.log('hello is not a function') }
typeof有兩個值得注意的點,一個是對于null,雖然typeof返回‘object’,但是null實際上是一個特殊的對象,不屬于后面JS中的任何一種類型。另一個是對于數組,typeof返回的結果同樣是‘object’,因此在對數組進行檢測時推薦使用Array.isArray()函數,這個函數專門用于檢測一個對象是否是數組類型:
var a = [] if(Array.isArray(a)){ console.log('a is an Array') }else{ console.log('a is not an Array') }
總的來說,typeof是Javascript中一個非常有用和常用的函數,可以方便地判斷一個變量或者對象的數據類型。但是在使用的過程中也需要注意它的一些限制和特殊情況,特別是對于null和數組的判斷。如果我們能夠熟練掌握typeof的用法,相信能夠幫助我們更好地編寫出高質量和高效的Javascript代碼。