版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
运算符
JavaScript具有全范围的运算符,包括算术、逻辑、位、以及赋值运算符,此外还有其他一些运算符。
算术:
描述 | 符号 |
---|---|
负值 | - |
递增 | ++ |
递减 | – |
乘法 | * |
除法 | / |
取模运算 | % |
加法 | + |
减法 | - |
逻辑:
描述 | 符号 |
---|---|
逻辑非 | ! |
小于 | < |
大于 | > |
小于等于 | <= |
大于等于 | >= |
等于 | == |
不等于 | != |
逻辑与 | && |
逻辑或 | || |
条件(三元运算符) | ?: |
逗号 | , |
恒等 | === |
不恒等 | !== |
位运算:想深入了解位运算请点击这里详细讲解
描述 | 符号 |
---|---|
按位取反 | ~ |
按位左移 | << |
按位右移 | >> |
无符号右移 | >>> |
按位与 | & |
按位或 | | |
按位异或 | ^ |
赋值:
描述 | 符号 |
---|---|
赋值 | = |
加法赋值 | += |
减法赋值 | -= |
乘法赋值 | *= |
除法赋值 | /= |
取模赋值 | %= |
运算符优先级
JavaScript中的运算符是按照一个特定的顺序来求值的,这个顺序就是运算符的优先级。
在这里,我从高到低列出了这些运算符,处于同一行的运算符从左至右的顺序求值。
运算符 | 描述 |
---|---|
. [ ] () | 字段访问、数组下标以及函数调用 |
++ – - ~ ! typeof new void delete | 一元运算符、返回数据类型、对象创建、未定义值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、减法、字符串连接 |
<< >> >>> | 移位 |
< <= > >= | 小于、小于等于、大于、大于等于 |
== != === !== | 等于、不等于、恒等、不恒等 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?: | 条件(三元运算) |
= | 赋值 |
, | 多重求值 |
具有较高优先级的运算符将在具有较低优先级的运算符之前被求值,例如:
z = 78 * (96+3+45)
// 它们将这个顺序求值:(),*,+,+,=
圆括号可用来改变求值顺序,圆括号中的表达式应在其用于语句的其余部分之前全部被求值。
运算过程:
首先对圆括号内的表达式求值:其中有两个加法运算符,它们具有相同优先级:96+3相加,然后再与45相加,得到结果144。
然后是乘法运算:78和144相乘,得到结果11232。
最后是赋值运算符:将11232赋给z。