為保留最高的精確度,JavaScript 內部把所有的數值均表示成雙倍精準(Double Precision)浮點數,因此在 JavaScript 中的數值變數,無論看起來是整數和浮點數,其內部儲存和運算方式都是以雙倍精準的浮點數來進行。
JavaScript 的整數大部分是以十進位來表示,但若有需要,也可以使用不同的基底(Base)來表示,例如 8(八進位)和 16(十六進位),說明如下:
- 八進位的數字以 0 開頭,只包含數字 0 到 7。(但是如果有一個數字的開頭是 0,但卻也包含數字 8 或 9,或包含小數點,那麼它就會被認定成是一個十進位數字。)
- 十六進位的數字以 "0x",只包含了數字 0 到 9,和字母 A 到 F(不論大小寫)。字母 A 到 F 分別代表 10 到 15。也就是說,0xA 等於 10,而 0xF 等於 15。
浮點數可用小數點來表示,或用科學記號法來表示。若用科學記號法,大寫或小寫的 "e" 都可以表示 「10的次方」。JavaScript 使用 IEEE 754 浮點標準的數值表示法來表示數字,您可以寫出大到像 1.7976931348623157x10308,和小到像 5.00x10-324 的數字。
以下是一些 JavaScript 數字的範例。
數字 | 說明 | 十進位表示法
|
---|
.0001, 0.0001, 1e-4, 1.0e-4 | 4 個浮點數,值皆相等。 | 0.0001
|
3.45e2 | 一個浮點數。 | 345
|
42 | 一個整數。 | 42
|
0378 | 一個整數。雖然看起來像八進位數字(以0開頭),8 不是正確的數字,所以這個數字是十進位數字。 | 378
|
0377 | 一個八進位整數。注意它雖然只比上面的數字小1,它真正的值卻截然不同。 | 255
|
0.0001 | 一個浮點數字。即使以0開頭,它卻不是八進位數字,因為它有一個小數點。 | 0.0001
|
00.0001 | 這是一個錯誤。開頭的兩個0顯示它是個八進位數,可是八進位數字是不能有小數點的。 | (造成編譯器錯誤)
|
0Xff | 十六進位的整數。 | 255
|
0x37CF | 十六進位的整數。 | 14287
|
0x3e7 | 十六進位的整數。注意 "e" 並不是指數。 | 999
|
0x3.45e2 | 這是一個錯誤。十六進位數字不能有小數部分。 | (造成編譯器錯誤)
|
此外,JavaScript 還有一些特殊數值如下︰
- NaN(Not a Number,非數字):用不正確的資料(例如字串或未定義的變數)來執行數學運算時,或是執行無意義的數學運算(例如 0/0),就會產生這個數值
- 正的無限大(Infinity):當正數大到無法顯示在 JavaScript 中時,就會使用這個數值
- 負的無限大(-Infinity):當負數大到無法顯示在 JavaScript 中時,就會使用這個數值
請見下列範例:
上述範例的原始檔如下:
Number 是一個內訂的物件,我們可以使用 Number 的相關屬性來代表與數字相關的常數,列表如下:
常數表示法 | 說明
|
---|
Number.MIN_VALUE | 傳回能在 JavaScript 中表示最接近零的數字。大約等於 5.00E-324。
|
Number.MAX_VALUE | 傳回能在 JavaScript 中表示的最大值。大約等於 1.79E+308。
|
Number.NEGATIVE_INFINITY | 傳回一個能在 JavaScript 中表示、且比最大負數 (-Number.MAX_VALUE) 還要小的值。
|
Number.POSITIVE_INFINITY | 傳回能在 JavaScript 中表示且大於最大數 (Number.MAX_VALUE) 的值。
|
Number.NaN | 一個特殊值,可指出算術運算式的傳回值不是一個數字。
|
此外,還有一些與數字相關的內建函式,列表說明如下:
函式格式 | 說明
|
---|
parseInt(numString, [radix]) | 傳回一個從字串 numString 轉換而來的整數,其中 radix 是介於 2 和 36 之間的值,用來指出包含在 numString 中的數字基底(Base)。如果未提供,則字首為 0x 的字串會視為十六進位的數字,而字首為 0 的字串則會視為八進位的數字。其他所有的字串則會視為十進位的數字。
|
parseFloat(numString) | 傳回一個從字串 numString 轉換而來的浮點數。
|
isNaN(number) | 如果 number 值為 NaN,則 isNaN 函式會傳回 true,否則會傳回 false。通常使用此函式來測試 parseInt 和 parseFloat 方法的傳回值。
|
x.toString([radix]) | 將數值 x 轉成特定基底 radix 的字串。
|
x.toFixed(n) | 將數值 x 轉成小數點以下 n 位有效數字的小數點表示法。
|
x.toExponential(n) | 將數值 x 轉成小數點以下 n 位有效數字的科學記號表示法。
|
x.toPrecision(n) | 將數值 x 轉成共具有 n 位有效數字。
|
我們可以使用 toString() 的方法來顯示基底的轉換結果,例如:
上述範例的原始檔如下:
此外,我們可以使用下列範例,來對各種與數字物件相關的常數和函式進行簡單測試:
上述範例的原始檔如下:
JavaScript 程式設計與應用:用於網頁用戶端