JavaScript数字为64位浮点数,需注意精度问题(如0.1+0.2≠0.3);支持+−/%*运算符,隐式转换易出错,推荐显式转换;用Number.isNaN()、isFinite()处理NaN/Infinity;Math对象提供舍入、极值、随机数等方法;小数比较宜用误差容忍,显示用toFixed()。

JavaScript 中的数字处理和数学运算主要依靠内置的 Number 类型、算术运算符以及 Math 对象。关键在于理解 JavaScript 只有一种数字类型(64 位双精度浮点数),没有整型/浮点型区分,因此要注意精度问题(比如 0.1 + 0.2 !== 0.3)。
基础算术运算:用好 + - * / % **
JavaScript 支持常见的二元算术运算符:
-
+加法(也用于字符串拼接,注意类型隐式转换) -
-减法 -
*乘法 -
/除法 -
%取余(不是取模,对负数结果符号跟随被除数) -
**幂运算(ES2016 引入,如2 ** 3得 8)
注意:运算前会尝试将操作数转为数字,例如 "5" - "2" 得 3,但 "5" + "2" 是字符串拼接得 "52";建议用 Number()、parseInt() 或一元加号 + 显式转换。
安全处理数字:避免 NaN 和 Infinity
无效运算(如 0 / 0、parseInt("abc"))会返回 NaN,而 1 / 0 得 Infinity。它们有特殊行为:
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。
立即学习“Java免费学习笔记(深入)”;
-
NaN !== NaN,必须用isNaN()或更推荐的Number.isNaN()判断 -
Infinity可参与计算(如Infinity + 1 === Infinity),可用isFinite()检查是否为有限数 - 推荐用
Number(value)转换并配合Number.isFinite()验证有效性,比parseFloat更严格(不忽略开头空格或尾部字母)
常用数学函数:善用 Math 对象
Math 是静态对象,提供大量工具方法:
- 舍入:
Math.round(2.6)→3,Math.floor()向下,Math.ceil()向上,Math.trunc()去小数部分 - 极值:
Math.max(1, 5, 3)→5,支持展开语法Math.max(...arr) - 随机数:
Math.random()返回 [0, 1) 的浮点数;获取 [min, max] 整数:Math.floor(Math.random() * (max - min + 1)) + min - 其他:
Math.abs()、Math.sqrt()、Math.pow()、三角函数(弧度制)、Math.log()等
处理精度问题:小数运算不“精确”怎么办?
由于浮点数存储机制,0.1 + 0.2 === 0.30000000000000004。实用应对方式:
- 显示时用
toFixed(n)格式化(返回字符串,注意四舍五入) - 比较时用误差容忍(如
Math.abs(a - b) ) -
金融计算等高精度场景,改用字符串处理或专用库(如
decimal.js、big.js) - 整数运算可先放大再缩小,例如
(0.1 * 10 + 0.2 * 10) / 10 === 0.3










