之前在介紹資料型別分類時我們已經了解,資料型別分為基本資料型別和參照資料型別,基本資料型別有分為數位型別、字串型別、布林型別、空型別和未定義型別。本節教學就對 JS 中的這 5 個基本資料型別進行詳細介紹。
JS number數位型別
數位(number)型別在 JavaScript 原始碼中包含兩種書寫格式的數位:整型數位和浮點型數位。整型數位就是只包含整數部分的數位,其又分為十進位制、十六進位制和八進位制三類整數。浮點型數位則包含整數部分、小數點和小數部分的數位。
1) 整型數位
在 JavaScript 程式中,十進位制的整數是一個數位序列。例如:123、69、10000 等數位。JavaScript 的數位格式允許精確地表示 -900719925474092(-253) 和 900719925474092(253) 以及它們之間的所有整數。使用超過這個範圍的整數,就會失去尾數的精度。
JavaScript 不但能夠處理十進位制的整型資料,還能識別十六進位制(以 16 為基數)的資料。所謂十六進位制資料,是以“0X”或“0x”開頭,其後跟隨十六進位制數位串的直接量。十六進位制的數位可以是 0~9 中的某個數位,也可以是 a(A)~f(F) 中的某個字母,它們用來表示 0~15 之間(包括 0 和 15)的某個值。十六進位制可以很容易地轉換為十進位制數,例如:十六進位制數 0xff 對應的十進位制數是 255(15×16+15=255)。
儘管 ECMAScript 標準不支援八進位制資料,但是 JavaScript 的某些實現卻允許採用八進位制(基數為 8)格式的整型資料。八進位制資料以數位 0 開頭,其後跟隨由 0~7(包括 0 和 7)之間的數位組成的一個數位序列。八進位制數可以很容易地轉換為十進位制數,例如,八進位制數是 0377 對應的十進位制數是 255(3×64+7×8+7=255)。
由於某些 JavaScript 實現支援八進位制資料,有些則不支援,所以最好不要使用以 0 開頭的整型資料,因為不知道某個 JavaScript 的實現是將其解釋為十進位制,還是解釋為八進位制。
2) 浮點型數位
浮點型數位採用的是傳統的實數寫法。一個實數值由整數部分後加小數點和小數部分表示。此外,還可以使用科學(也稱指數)計數法表示浮點型數位,即實數後跟隨字母 e 或 E,後面加上正負號(正號可以省略),其後再加一個整型指數。這種記數法表示的數值等於前面的實數乘以 10 的指數次冪。
構成語法:
[digits] [.digits] [(E|e([+]|-)])digits]
中括號括起的內容表示可以省略。
浮點數範例如下:
11-12
在 JavaScript 中,數位型別名為“number”。宣告數位型別的變數及判斷變數型別範例如下:
var a = 17; //變數型別為十進位制的整型數位
var b = 0x36ae; //變數型別為十六進位制的整型數位
var c = 6.78; //變數型別為實數表示法的浮點型數位
var d = 12e5; //變數型別為科學計數法表示的浮點型數位
alert(typeof c); //在警告對話方塊中顯示的結果為:number
上述範例最後一行使用了 typeof 來檢測 c 變數的資料型別,從執行結果可看到為 number 型別。把變數名 c 分別替換為 a 和 b 後,同樣可檢測出 a 和 b 的型別也是 number。
數位型別的資料可執行的操作有加、減、乘、除和取模等算術運算,範例如下:
var a = 18, b = 3;
var c = a + b; //執行加法運算
var d = a / b; //執行除法運算
var e = a % b; //執行取模運算
JS string字串型別
字串(string)型別是由單引號或雙引號括起來的一組由 16 位 Unicode 字元組成的字元序列,用於表示和處理文字。
1) 字串直接量
在 JavaScript 程式中的字串直接量,是由單引號或雙引號括起來的字元序列。由單引號定界的字串中可以含有雙引號,由雙引號定界的字串中也可以含有單引號。
字串直接量範例如下:
'我現在在學習 JavaScript' //單引號括起來的字串
"我現在在學習 JavaScript" //雙引號括起來的字串
'我現在在學習 "JavaScript"' //單引號定界的字串中可以包含雙引號
"我現在在學習 'JavaScript'" //雙引號定界的字串中可以包含單引號
2) 跳脫字元
在 JavaScript 字串中,反斜槓
有著特殊的用途,通過它和一些字元的組合使用,可以在字串中包括一些無法直接鍵入的字元,或改變某個字元的常規解釋。例如:使用雙引號括起來的字串中,如果需要包含雙引號,則需要對作為字串內容的雙引號做非常規解釋,即不能解釋為字串的定界符號,此時通過將雙引號寫成
"
的形式可滿足需求。
"
稱為跳脫字元,該跳脫字元將雙引號解釋為字串中的一個組成部分,而不是作為字串定界符號。又比如
n
表示的是換行符,實現換行功能。
n
跳脫字元實現了在字串中包括無法直接鍵入的換行符。JavaScript 常用的跳脫字元見表 1 。
表 1:JavaScript 常用的跳脫字元
跳脫字元 |
描述 |
跳脫字元 |
描述 |
n |
換行符 |
r |
回車符 |
t |
水平製表符 |
|
反斜槓符 |
b |
退格符 |
v |
垂直製表符 |
f |
換頁符 |
ddd |
八進位制整數,取值範圍 000~777 |
' |
單引號 |
xnn |
十六進位制整數,取值範圍 00~FF |
" |
雙引號 |
uhhhh |
由 4 位十六進位制數指定的 Unicode 字元 |
跳脫字元的使用範例如下:
var msg1 = "這個例子演示了使用"JS跳脫字元"" ; //程式碼中使用了"雙引號跳脫字元
Var msg2 = '以及"單引號"作字串界定的兩種方法輸出字串中的雙引號。' ;
alert(msg1 + "n" + msg2); //程式碼中使用了n換行跳脫字元
上述程式碼複製貼上到 Chrome 瀏覽器的控制台中,按“Enter”鍵回車後執行,結果彈出警告對話方塊,如圖 1 所示。
圖 1:跳脫字元的使用