Aritmetika ng JavaScript
Ang tipikal na sitwasyon ng paggamit ng numerical values ay aritmetika.
Aritmetikong operator ng JavaScript
Ang aritmetikong operator ng JavaScript ay nagbibigay ng aritmetikong operasyon sa numerical values (teksto o variable).
运算符 | 描述 |
---|---|
+ | Pagdagdag |
- | Pagbawas |
* | Pagkakalipat |
** | Kapangyarihan (ES2016) |
/ | Paghahati |
% | Sukat ng kagamitan |
++ | Pagtaas |
-- | Pagbaba |
Aritmetikong operator
Ang tipikal na aritmetikong operasyon ay gumagawa ng dalawang numerical value.
Ang dalawang bilang ay maaaring maging literal:
实例
var x = 7 + 8;
O variable:
实例
var x = a + b;
O ekspresyon:
实例
var x = (7 + 8) * a;
Operator at operation
Sa aritmetikong operasyon, ang bilang ay tinatawag naOperation。
Ang pagganap ng (pagitan ng dalawang operation) ay ginagawa ng运算符Paglilinaw.
Operation | 运算符 | Operation |
---|---|---|
7 | + | 8 |
Pagkakalipat
PagkakalipatOperator ng (*
)Sukat ng pagkakalipat.
var x = 7; var y = 8; var z = x * y;
Sukat ng kagamitan
Sukat ng kagamitanOperator ng (%
)Ibinabalik ang sobra sa paghahati.
var x = 7; var y = 2; var z = x % y;
Komentaryo:Sa aritmetika, ang paghahati ng dalawang buong bilang ay nagbibigay ng kalahati at sobra.
Komentaryo:Sa matematika, ang resulta ng modular na operasyon ay ang sobra sa aritmetikong paghahati.
Kapangyarihan
Ang operator ng pagpipilit sa kapangyarihan (**) ay nagpapahintulot sa unang operand sa pagpilit sa kapangyarihan ng ikalawang operand.
实例
var x = 5; var z = x ** 2; // Ang resulta ay 25
x ** y 产生的结果与 Math.pow(x,y) 相同:
实例
var x = 5; var z = Math.pow(x,2); // 结果是 25
运算符优先级
运算符优先级(Operator precedence)描述了在算术表达式中所执行操作的顺序。
实例
var x = 200 + 50 * 2;
上例的结果是 250 * 2 还是 200 + 100 呢?
是加法还是乘法优先呢?
在传统的学校数学中,乘法是优先的。
乘法(*
)和除法(%
)和加法(+
)和减法(-
)拥有更高的优先级。
同时,(就像在学校的数学中那样)能够通过使用括号来改变优先级:
实例
var x = (200 + 50) * 2;
当使用括号时,括号中的运算符会首先被计算。
当多个运算拥有相同的优先级时(比如加法和减法),对它们的计算是从左向右的:
实例
var x = 200 + 50 - 2;
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 |
注意:淡红色指示实验性或建议性的技术(ECMASScript 2016 或 ES7)
提示:括号中的表达式会在值在表达式的其余部分中被使用之前进行完全计算。