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