JavaScript 算术
JavaScript 算术是指使用运算符对操作数执行算术计算。
1. JavaScript 算术运算符
算术运算符对数值执行算术运算。
| 运算符 | 描述 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| ** | 幂 |
| / | 除法 |
| % | 系数 |
| ++ | 递增 |
| -- | 递减 |
2.算术运算符
典型的算术运算会操作两个数值。
这两个数可以是字面量:
范例
var x = 7 + 8;
或变量:
范例
var x = a + b;
或表达式:
范例
var x = (7 + 8) * a;
3. 运算符和操作数
在算术运算中,数被称为操作数。
(两个操作数之间执行的)运算由运算符定义。
| 操作数 | 运算符 | 操作数 |
|---|---|---|
| 7 | + | 8 |
4. 加法
加法运算符(+)加数:
var x = 7; var y = 8; var z = x + y;
5. 减法
减法运算符(-)减数。
var x = 7; var y = 8; var z = x - y;
6. 乘法
乘法运算符(*)乘数。
var x = 7; var y = 8; var z = x * y;
7. 除法
除法运算符(/)除数。
var x = 7; var y = 2; var z = x / y;
8. 系数
系数运算符(%)返回除法的余数。
var x = 7; var y = 2; var z = x % y;
注释:在算术中,两个整数的除法产生商和余数。
注释:在数学中,模运算的结果是算术除法的余数。
9. 递增
递增运算符(++)对数值进行递增。
var x = 7; x++; var z = x;
10. 递减
递减运算符(--)对数值进行递减。
var x = 7; x--; var z = x;
11. 幂
取幂运算符(**)将第一个操作数提升到第二个操作数的幂。
范例
var x = 5; var z = x ** 2; // 结果是 25
x ** y 产生的结果与 Math.pow(x,y) 相同:
范例
var x = 5; var z = Math.pow(x,2); // 结果是 25
12. 运算符优先级
运算符优先级(Operator precedence)描述了在算术表达式中所执行操作的顺序。
范例
var x = 200 + 50 * 2;
上例的结果是 250 * 2 还是 200 + 100 呢?
是加法还是乘法优先呢?
在传统的学校数学中,乘法是优先的。
乘法(*)和除法(%)比加法(+)和减法(-)拥有更高的优先级。
同时,(就像在学校的数学中那样)能够通过使用括号来改变优先级:
范例
var x = (200 + 50) * 2;
当使用括号时,括号中的运算符会首先被计算。
当多个运算拥有相同的优先级时(比如加法和减法),对它们的计算是从左向右的:
范例
var x = 200 + 50 - 2;
13. JavaScript 运算符优先级值
| 值 | 运算符 | 描述 | 范例 |
|---|---|---|---|
| 20 | ( ) | 表达式分组 | (3 + 4) |
| 19 | . | 成员 | person.name |
| 19 | [] | 成员 | person["name"] |
| 19 | () | 函数调用 | myFunction() |
| 19 | new | 创建 | new Date() |
| 17 | ++ | 后缀递增 | i++ |
| 17 | -- | 后缀递减 | i-- |
| 16 | ++ | 前缀递增 | ++i |
| 16 | -- | 前缀递减 | --i |
| 16 | ! | 逻辑否 | !(x==y) |
| 16 | typeof | 类型 | typeof x |
| 15 | ** | 求幂 (ES7) | 10 ** 2 |
| 14 | * | 乘 | 10 * 5 |
| 14 | / | 除 | 10 / 5 |
| 14 | % | 模数除法 | 10 % 5 |
| 13 | + | 加 | 10 + 5 |
| 13 | - | 减 | 10 - 5 |
| 12 | << | 左位移 | x << 2 |
| 12 | >> | 右位移 | x >> 2 |
| 12 | >>> | 右位移(无符号) | x >>> 2 |
| 11 | < | 小于 | x < y |
| 11 | <= | 小于或等于 | x <= y |
| 11 | > | 大于 | x > y |
| 11 | >= | 大于或等于 | x >= y |
| 11 | in | 对象中的属性 | "PI" in Math |
| 11 | instanceof | 对象的范例 | instanceof Array |
| 10 | == | 相等 | x == y |
| 10 | === | 严格相等 | x === y |
| 10 | != | 不相等 | x != y |
| 10 | !== | 严格不相等 | x !== y |
| 9 | & | 按位与 | x & y |
| 8 | ^ | 按位 XOR | x ^ y |
| 7 | | | 按位或 | x | y |
| 6 | && | 逻辑与 | x && y |
| 5 | || | 逻辑否 | x || y |
| 4 | ? : | 条件 | ? "Yes" : "No" |
| 3 | = | 赋值 | x = y |
| 3 | += | 赋值 | x += y |
| 3 | -= | 赋值 | x -= y |
| 3 | *= | 赋值 | x *= y |
| 3 | %= | 赋值 | x %= y |
| 3 | <<= | 赋值 | x <<= y |
| 3 | >>= | 赋值 | x >>= y |
| 3 | >>>= | 赋值 | x >>>= y |
| 3 | &= | 赋值 | x &= y |
| 3 | ^= | 赋值 | x ^= y |
| 3 | |= | 赋值 | x |= y |
| 2 | yield | 暂停函数 | yield x |
| 1 | , | 逗号 | 7 , 8 |
提示:括号中的表达式会在值在表达式的其余部分中被使用之前进行完全计算。
下一章:JS 赋值
JavaScript 赋值:JavaScript 通过赋值运算符给变量赋值。赋值运算符向 JavaScript 变量赋值。赋值运算符包括:=、+=、-=、*=、/=、%= 等。= 赋值运算符向变量赋值。+= 赋值运算符向变量添加值。-= 赋值运算符从变量中减去一个值。*= 赋值运算符相乘变量。/= 赋值运算符对变量相除。%= 赋值运算符把余数赋值给变量。
AI 中文社