JavaScript 基础数学(数字篇)

内容分享2天前发布
0 0 0

JavaScript 中的数字处理是基础且重大的部分,它涉及数字类型、运算规则、内置方法等内容。下面我们系统梳理 JavaScript 数字相关的核心知识:

一、数字类型本质

JavaScript 中只有一种数字类型 ——64 位双精度浮点数,无论整数、小数都统一用这种格式存储。
这意味着:

  • 整数和小数没有类型区分(如 5 和 5.0 本质一样)
  • 存在精度限制(对极大 / 极小数字或高精度计算可能有误差)

JavaScript 基础数学(数字篇)

二、数字的表明方式

1. 十进制(默认)

let a = 123;       // 整数
let b = 123.45;    // 小数
let c = .45;       // 省略整数部分(等价于 0.45)
let d = 123.;      // 省略小数部分(等价于 123)

2. 其他进制

  • 二进制:前缀 0b 或 0B(0-1)
let bin = 0b1010; // 二进制 1010 → 十进制 10
  • 八进制:前缀 0o0O(0-7)
let oct = 0o17;   // 八进制 17 → 十进制 15
  • 十六进制:前缀 0x0X(0-9, a-f/A-F)
let hex = 0xFF;   // 十六进制 FF → 十进制 255

3. 科学计数法

用于表明极大或极小的数字:

let large = 123e5;  // 123 × 10  12300000
let small = 123e-5; // 123 × 10⁻⁵  0.00123

JavaScript 基础数学(数字篇)

三、算术运算符

运算符

说明

示例

结果

+

加法

2 + 3

5

减法

5 – 2

3

*

乘法

3 * 4

12

/

除法

10 / 2

5

%

取余(模运算)

10 % 3

1

**

幂运算(ES6+)

2 **3

8(等价于 Math.pow (2,3))

JavaScript 基础数学(数字篇)

四、特殊数字值

1.Infinity(无穷大)

  • 表明超过 JavaScript 最大可表明数字的值
  • 特性:
console.log(1 / 0);       // Infinity
console.log(Infinity + 1); // Infinity(无穷大+1还是无穷大)
console.log(-Infinity);   // 负无穷大(如 -1 / 0)

2.NaN(非数字,Not a Number)

  • 表明 “不是有效数字” 的结果(但类型仍为 number)
  • 产生场景:
console.log("abc" / 2);   // NaN(字符串无法参与除法)
console.log(0 / 0);       // NaN(数学上无意义)
  • 注意:NaN 不等于任何值(包括自身),需用 Number.isNaN() 检测:
console.log(NaN === NaN);        // false
console.log(Number.isNaN(NaN));  // true

JavaScript 基础数学(数字篇)

五、常用数字处理方法

1. 全局转换函数

  • Number():将值转为数字(严格转换)
Number("123");    // 123
Number("123abc"); // NaN(包含非数字字符)
Number(true);     // 1(布尔值 true→1,false→0)
  • parseInt(str, radix):解析整数(忽略非数字字符,可指定进制)
parseInt("123abc"); // 123(忽略后面的非数字)
parseInt("11", 2);  // 3(二进制 "11" 转十进制)
  • parseFloat(str):解析浮点数(只支持十进制)
parseFloat("123.45abc"); // 123.45

2.Math对象(核心工具)

Math 是内置对象,提供大量数学运算方法(无需实例化):

方法

说明

示例

结果

Math.abs(x)

取绝对值

Math.abs(-5)

5

Math.round(x)

四舍五入

Math.round(2.6)

3

Math.ceil(x)

向上取整

Math.ceil(2.1)

3

Math.floor(x)

向下取整

Math.floor(2.9)

2

Math.max(…nums)

取最大值

Math.max(1, 3, 2)

3

Math.min(…nums)

取最小值

Math.min(1, 3, 2)

1

Math.random()

生成 [0,1) 随机数

Math.random()

如 0.345

Math.pow(x, y)

x 的 y 次方

Math.pow(2, 3)

8

Math.sqrt(x)

开平方

Math.sqrt(16)

4

JavaScript 基础数学(数字篇)

六、常见陷阱与注意事项

1.** 浮点数精度问题 **:
由于二进制存储特性,部分小数运算会有误差:

console.log(0.1 + 0.2); // 0.30000000000000004(而非 0.3

解决:用 toFixed() 控制小数位数,或转整数运算。

2.** 字符串与数字的加法 **:
+ 同时用于加法和字符串拼接,需注意类型:

console.log(1 + 2);     // 3(数字加法)
console.log("1" + 2);   // "12"(字符串拼接)
console.log(+"1" + 2);  // 3(用 + 快速转为数字)

3.** 安全整数范围 **:
JavaScript 能准确表明的整数范围是 -2^53 + 1 到 2^53 – 1,超出范围会丢失精度:

console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991(2^53 - 1)

大整数需求可用 BigInt 类型(后缀 n):

let big = 9007199254740993n; // BigInt 类型,可准确表明

通过掌握这些基础,你可以应对 JavaScript 中大部分数字处理场景。实际开发中,复杂计算提议结合工具库(如 decimal.js)处理精度问题。

JavaScript 基础数学(数字篇)

© 版权声明

相关文章

暂无评论

none
暂无评论...