javascript算术表达式计算核心是运算符优先级和结合性:最高,其次* / %,最后+ -(二元);同级左结合(右结合);括号优先;+/-具有一元与二元双重身份;需警惕隐式类型转换。

JavaScript 中算术表达式的计算,核心是理解运算符的优先级和结合性,并按规则从左到右逐步求值。不是简单地从左往右硬读,而是先看谁“级别高”,谁先算。
算术运算符有哪些
最常用的有:+(加)、-(减)、*(乘)、/(除)、%(取余)、**(幂运算)。注意:- 还可以作一元负号(如 -5),+ 也可作一元正号(如 +3),这和二元加法不同。
优先级决定谁先算
幂运算 ** 优先级最高,其次是 *、/、%,最后才是 + 和 -(二元)。同级运算符从左到右计算(除 ** 是从右向左)。
-
2 + 3 * 4→ 先算3 * 4 = 12,再算2 + 12 = 14 -
2 ** 3 ** 2→ ** 是右结合,等价于2 ** (3 ** 2) = 2 ** 9 = 512 -
10 - 3 + 2→ + 和 - 优先级相同,从左到右:先10 - 3 = 7,再7 + 2 = 9
用括号明确意图
括号 () 优先级最高,能强制改变默认顺序。写代码时,哪怕按默认规则也能算对,加上括号也更易读、少出错。
-
a + b * c意图是先加再乘?那就写成(a + b) * c -
price * (1 + taxRate)比price * 1 + taxRate更清晰、更安全
注意隐式类型转换带来的“意外”
JavaScript 在算术运算中会尝试转为数字,但结果可能不是你预期的:
-
"5" - "2"→3(字符串被转为数字后相减) -
"5" + "2"→"52"(+ 遇到字符串就变成拼接) -
"5" * "2"→10(* 只支持数字,自动转换) -
null + 1→1(null 转为 0),undefined + 1→NaN
建议:做算术前用 Number()、parseInt() 或一元加号 +value 显式转类型,避免靠猜测运行。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











