JavaScript 算术
JavaScript 算术运算
Section titled “JavaScript 算术运算”执行算术运算是编程的一个基本方面,JavaScript 为此提供了一套标准的运算符。
JavaScript 算术运算符
Section titled “JavaScript 算术运算符”算术运算符用于对数字(可以是字面量或变量)执行数学计算。
| 运算符 | 描述 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / | 除法 |
| % | 取模(余数) |
| ** | 指数运算 (ES2016) |
| ++ | 自增 |
| — | 自减 |
典型的算术运算涉及一个或两个数字。
这些数字可以是字面量:
let sum = 100 + 50; // sum 的值为 150或变量:
let a = 10;let b = 5;let difference = a - b; // difference 的值为 5或表达式:
let result = (100 + 50) * 3; // result 的值为 450运算符和操作数
Section titled “运算符和操作数”在算术运算中,数字称为操作数(operands)。运算本身(如加法或乘法)由运算符(operator)定义。
| 操作数 | 运算符 | 操作数 |
|---|---|---|
| 100 | + | 50 |
加法运算符(+)用于加数字:
let x = 5;let y = 2;let z = x + y; // z 的值为 7减法运算符(-)用于减数字:
let x = 5;let y = 2;let z = x - y; // z 的值为 3乘法运算符(*)用于乘数字:
let x = 5;let y = 2;let z = x * y; // z 的值为 10除法运算符(/)用于除数字:
let x = 5;let y = 2;let z = x / y; // z 的值为 2.5取模运算符(%)返回除法的余数:
let x = 5;let y = 2;let z = x % y; // z 的值为 1 (5 除以 2 等于 2 余 1)指数运算符(**)将第一个操作数提升到第二个操作数的幂 (ES2016):
let x = 5;let y = 2;let z = x ** y; // z 的值为 25 (5 的 2 次方)自增运算符(++)将数字加 1。它可以用作前缀(++x)或后置(x++)。
let x = 5;x++; // x 现在是 6 (后置自增)let z = x; // z 的值为 6
let y = 5;let w = ++y; // y 是 6,w 是 6 (前置自增,先自增 y 然后赋值给 w)自减运算符(--)将数字减 1。它也可以是前缀或后置。
let x = 5;x--; // x 现在是 4 (后置自减)let z = x; // z 的值为 4
let y = 5;let w = --y; // y 是 4,w 是 4 (前置自减)注意:JavaScript 数字是 64 位浮点数。这有时会导致小数算术运算的精度问题。对于高精度算术,特别是金融计算,考虑使用库或 BigInt 来处理整数。
运算符优先级
Section titled “运算符优先级”运算符优先级决定了算术表达式中运算的执行顺序。例如:
let x = 100 + 50 * 3;结果是 (100 + 50) * 3 = 450,还是 100 + (50 * 3) = 250?
乘法和除法的优先级高于加法和减法。所以,先执行 50 * 3。
结果:100 + 150 = 250。
与标准数学一样,可以使用括号 () 来覆盖默认优先级并强制某个运算先执行:
let x = (100 + 50) * 3; // x 的值为 450当运算符具有相同的优先级时(例如,加法和减法,或乘法和除法),它们通常从左到右求值。
let x = 100 + 50 - 3; // 先计算 (100 + 50),然后减去 3。结果是 147。算术运算符优先级表
Section titled “算术运算符优先级表”下表列出了 JavaScript 算术运算符,按优先级从高到低排序:
| 运算符 | 描述(优先级) |
|---|---|
| ( ) | 分组(表达式分组) |
| ++ — | 自增(后置 x++),自减(后置 x--) |
| ++ — | 自增(前置 ++x),自减(前置 --x),一元加法 (+x),一元否定 (-x) |
| ** | 指数运算 |
| * / % | 乘法,除法,取模 |
| + - | 加法,减法 |
注意:此表显示的是常见的算术运算符。有关完整的运算符优先级列表,请参阅 MDN 文档。括号中的表达式总是在其值用于表达式的其余部分之前完全计算。
常见的学习障碍:忘记优先级规则。有疑问时,使用括号 () 使运算顺序更明确,并提高代码可读性。