資料型別
一組屬性描述其定義、標識、表示和允許值的資料單元,在一定語境下,通常用於構建一個語義正確、獨立且無歧義的特定概念語義的資訊單元。
JavaScript的資料型別
字串型別
在JS中字串型別用
‘
單引號或
“
(雙引號)括起來的任意文字,例如
”jinqian“
和
’jq‘
等等
數字型別
JavaScript不區分整形和浮點型,以下均為JavaScript中的數字型別
12 //整數120。3 //浮點數0。3-12 //負數121。34e12 //科學計數法NaN //NaN表示 Not a Number,例如:在’js‘/12中就會返回NaNInfinity //表示無限大
布林值
Boolean(布林值),布林值用於表示true和false,布林值只有兩個值,
及
分別是
true
和
false
undefined
undefined
在JS中表示為定義,例如在定義一個變數a時,但是未進行賦值,則變數a的預設值極為undefined。
null
null
null是JS中的原始值之一,表示為空值,null和
0
以及
”“
不同,0表示一個數值,””表示空字串,及長度為0的字串,而null就表示的是空
以上型別均為JS中的原始值
object
object
,object是ES5中唯一的引用型別,無論是物件、陣列或是函式等均屬於object型別。
typeof方法
在ES5中,為我們提供了一個檢測資料型別的方法,
及
typeof。
typeof 2; //’number‘typeof ’jq‘; //’string‘typeof true; //’boolean‘typeof []; //’object‘typeof {}; // ’object‘typeof function(){}; //’function‘typeof null; //’object‘typeof undefined; //’undefined‘typeof /d/; //’object‘
由上面的示例,我們可以看出typeof並不能準確的分辨Array,null,Object以及RexExp等資料型別,因此在這裡我們可以自行封裝一個方法用檢測資料型別。
封裝myType方法
function myType(accept){/*判斷接受到的資料能否被typeof準確識別,若能走else,不能走下面程式碼*/ if(typeof accept === ’object‘){ return Object。prototype。toString。call(accept)。slice(8,-1); }else{ return typeof accept; } }