3.1 類型 Number
在 JavaScript 中,數字在處理數據和執行計算時扮演重要角色。這個語言提供了許多處理數字的可能性,包括多種操作類型和內建方法。
在 JavaScript 中只有一種類型來表示數字—Number。這個類型可以表示整數和浮點數。此外,從2020年開始,引入了一種名為 BigInt 的類型,用於處理非常大的整數。
範例:
JavaScript
let integer = 42; // 整數
let float = 3.14; // 浮點數
let bigInt = 12345678901234567890n; // 大整數
數字的操作
算術操作:
操作 | 語法 | 描述 | 範例 | 結果 |
---|---|---|---|---|
加 | a + b | 加兩個數字 | 5 + 3 | 8 |
減 | a - b | 從一個數字中減去另一個數字 | 10 - 4 | 6 |
乘 | a * b | 乘兩個數字 | 7 * 3 | 21 |
除 | a / b | 除一個數字 以另一個 |
20 / 5 | 4 |
取餘數 | a % b | 返回除餘數 | 10 % 3 | 1 |
乘冪 | a ** b | 將數字乘冪 | 2 ** 3 | 8 |
遞增和遞減
操作 | 語法 | 描述 | 範例 | 結果 |
---|---|---|---|---|
遞增 | ++a | 增加一(前置) | let a = 5; ++a; |
6 |
遞增 | a++ | 增加一(後置) | let a = 5; a++; |
5 (然後是 6) |
遞減 | --b | 減少一(前置) | let b = 5; --b; |
4 |
遞減 | b-- | 減少一(後置) | let b = 5; b--; |
5 (然後是 4) |
計算並賦值
操作 | 語法 | 描述 | 範例 | 結果 |
---|---|---|---|---|
加並賦值 | a += b | 計算並賦值 | let x = 10; x += 5; |
15 |
減並賦值 | a -= b | 減並賦值 | let x = 10; x -= 3; |
7 |
乘並賦值 | a *= b | 乘並賦值 | let x = 10; x *= 2; |
20 |
除並賦值 | a /= b | 除並賦值 | let x = 10; x /= 2; |
5 |
取餘數並賦值 | a %= b | 取餘數並賦值 | let x = 10; x %= 3; |
1 |
3.2 內建方法
在 JavaScript 中,有一個內建的物件 Math
用於執行各種數學操作。
1. Math.round():
將數字四捨五入到最近的整數。
JavaScript
let rounded = Math.round(4.6); // 5
2. Math.ceil():
將數字向上取整到最近的整數。
JavaScript
let ceil = Math.ceil(4.2); // 5
3. Math.floor():
將數字向下取整到最近的整數。
JavaScript
let floor = Math.floor(4.8); // 4
4.Math.random():
返回一個0到1之間的隨機數。
JavaScript
let random = Math.random();
5. Math.max() 和 Math.min():
返回一組數字中的最大值和最小值。
JavaScript
let max = Math.max(1, 2, 3, 4); // 4
let min = Math.min(1, 2, 3, 4); // 1
6. Math.sqrt():
返回數字的平方根。
JavaScript
let sqrt = Math.sqrt(16); // 4
7. Math.pow():
返回將數字乘冪後的結果。
JavaScript
let pow = Math.pow(2, 3); // 8
3.3 字串轉數字
函數 parseInt():
將字串轉換為整數。
JavaScript
let int = parseInt('123'); // 123
函數 parseFloat():
將字串轉換為浮點數。
JavaScript
let float = parseFloat('3.14'); // 3.14
函數 Number():
將值轉換為數字。
JavaScript
let num = Number('42'); // 42
檢查值
函數 isNaN():
檢查一個值是否是 NaN (不是數字)。
JavaScript
let isNotNumber = isNaN('hello'); // true
函數 isFinite():
檢查一個值是否是有限數字(是否為無限)。
JavaScript
let finite = isFinite(10); // true
let notFinite = isFinite(Infinity); // false
3.4 JavaScript 中的數字特點
1. 數字界限
在 JavaScript 中,數字以雙精度浮點數形式表示,具有一些限制:
- 最大值: Number.MAX_VALUE
- 最小值: Number.MIN_VALUE
- 正無窮: Infinity
- 負無窮: -Infinity
- 不是數字 (NaN): 一個不是數字的值
2. 數字精度
處理浮點數可能會導致精度問題:
JavaScript
let sum = 0.1 + 0.2;
console.log(sum); // 0.30000000000000004
這在所有編程語言中都是如此 - JavaScript 也不例外。
3. 安全整數
在 JavaScript 中有一個概念叫做"安全"整數,這些整數可以被準確地表示為浮點數:
- 最大的安全整數:
Number.MAX_SAFE_INTEGER (253 - 1)
- 最小的安全整數:
Number.MIN_SAFE_INTEGER (-(253 - 1))
GO TO FULL VERSION