雖然Javascript是弱型別語言,但是,它也有自己的幾種資料型別,分別是:Number、String、Boolean、Object、Udefined、Null。其中,Object屬於複雜資料類型,Object 由無序的鍵值對組成。其餘幾種都屬於簡單資料類型。注意:變數類型首字母大寫,而變數值首字母是小寫的。
JavaScript不支援自訂類型,所以JavaScript中的所有值都屬於這六種類型之一。
要搞清楚一個變數是何種資料類型,就要使用typeof操作符了,注意,尤其要注意的是,typeof是操作符,不是方法,因此,typeof中的字母'o'是小寫的。
語法:typeof temp; //temp是變量,這裡可以不加括號,但為了程式的可讀性,最好還是加上括號。
JavaScript 本身可以用它typeof來偵測變數的型別,但是有些結果卻讓人疑惑,例如,陣列的型別居然是"Object"。
下面是用typeof對各種資料型態的判斷結果
var myFunction = function() { console.log('hello'); }; var myObject = { foo : 'bar' }; var myArray = [ 'a', 'b', 'c' ]; var myString = 'hello'; var myNumber = 3; typeof myFunction; // 返回 'function' typeof myObject; // 返回 'object' typeof myArray; // 返回 'object' -- 小心哦! typeof myString; // 返回 'string'; typeof myNumber; // 返回 'number' typeof null; // 返回 'object' -- 小心哦! if (myArray.push && myArray.slice && myArray.join) { // 很可能是一个数组 // 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。 } if (Object.prototype.toString.call(myArray) === '[object Array]') { // 肯定是一个数组! // 这是判断一个变量是否为数组的最可靠方法 }