javascript算术运算符包括+、-、*、/、%、,+具字符串拼接与数值相加双重行为,其余运算符遇非数值会转数字(失败得nan);%为取余(符号同被除数),右结合;浮点精度问题需用tofixed()或误差容忍处理。

JavaScript 中用算术运算符做基础数学计算非常直接,关键在于理解每个运算符的含义、优先级和实际使用场景。
常用算术运算符及其作用
JavaScript 提供了 +(加)、-(减)、*(乘)、/(除)、%(取余)、**(幂)这六种基本算术运算符。它们都遵循数学常规,但要注意:% 不是取模而是取余(对负数结果与数学模运算不同),** 是右结合(如 2 ** 3 ** 2 等价于 2 ** (3 ** 2),结果为 512)。
-
+可用于数字相加,也可用于字符串拼接(遇到字符串会自动转为字符串) -
-、*、/、%、**遇到非数字类型会尝试转换:空字符串转为 0,"12"转为 12,"abc"转为NaN - 推荐在计算前用
Number()或一元加号+x显式转换,避免隐式转换陷阱
处理用户输入的数值计算
从表单或 prompt 获取的输入默认是字符串,直接参与算术运算易出错。例如:"5" - "2" 得 3(自动转数字),但 "5" + "2" 得 "52"(字符串拼接)。
- 安全做法:用
const a = Number(inputA); const b = +inputB;统一转为数字 - 检查有效性:
if (isNaN(a) || isNaN(b)) { /* 输入无效 */ } - 整数除法没有内置运算符,可用
Math.floor(a / b)或Math.trunc(a / b)(后者对负数更符合“截断”直觉)
注意运算符优先级与括号使用
算术运算符有固定优先级:** 最高,接着 * / %,然后 + -(同级左结合)。混淆优先级会导致结果偏差。
-
2 + 3 * 4结果是 14(先乘后加),不是 20 -
10 - 3 ** 2是 1(先算幂),不是 49 - 不确定时加括号:
(10 - 3) ** 2明确表示“先减后平方” - 连续减法或除法要留意结合性:
100 / 10 / 2等价于(100 / 10) / 2 === 5,不是100 / (10 / 2)
实用小技巧与常见避坑点
写计算逻辑时,几个细节常被忽略却影响结果准确性。
- 浮点数精度问题:
0.1 + 0.2 === 0.30000000000000004,比较时用Math.abs(a - b) - 取余运算符
%对负数返回与被除数同号的结果:-7 % 3得-1,需要真正“模”可用((a % n) + n) % n - 增量/减量操作符(
++、--)属于算术相关操作,但注意前置(++x)与后置(x++)在表达式中的返回值差异 - 避免链式赋值混用算术:
a = b = 5; a += 3;没问题,但a += b += 3;容易引发理解混乱,建议拆开写
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











