根据表达式中参与运算的数据个数,把运算符分为一元运算符,二元运算符,三元运算符等等,这里只记录常用的。
1、一元运算符
符号 | 描述 |
---|---|
+ | 加法运算符 |
- | 减法运算符 |
++ | 自增运算符 |
– | 自减运算符 |
! | 非 |
2、二元运算符
1、算术运算符
符号 | 描述 |
---|---|
+ | 加法运算符。 加号有两种作用,分别是 加法和连字符: 1、加号两边的操作数都是数字,则为加法 2、有一个操作数为字符串,则为连字符 |
- | 减法运算符 |
* | 乘法运算符 |
** | 幂,将第一个操作数提升到第二个操作数的幂。 ES7 示例:var x = 5; var z = x ** 2; //z=25 |
/ | 除法运算符 |
% | 取余运算符。例如:a%b 代表 a 除以 b 的余数,8 %5 = 3 |
如果运算符两边是数值字符串时,JS会自动把数值字符串转换为相应数值进行运算;假如有一边不能转换为数值,则结果为NaN。
2、关系运算符
符号 | 描述 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
=== | 全等于 |
!== | 不全等于 |
注意:
- 如果运算符两边都是number,则进行数值比较;
- 如果运算符两边都是string,则比较两个字符串相应位置上的字符ASCII码;
- 如果一边是数值,一边是字符串,则自动把字符串转换为数值,再进行比较;
- 如果一边是数值,一边是boolean类型,则自动把boolean类型转换为数值,再进行比较;
特别注意: 任何值与NaN比较,它的值都是 false 。
3、逻辑运算符
符号 | 描述 |
---|---|
! | 非(一元运算符) |
&& | 与 |
|| | 或 |
4、赋值运算符
符号 | 描述 |
---|---|
= | 赋值 |
+= | 快捷赋值,例如: a+=1 等价与 a=a+1 |
-= | 快捷赋值,例如: a-=1 等价与 a=a-1 |
*= | 快捷赋值,例如: a*=1 等价与 a=a*1 |
/= | 快捷赋值,例如: a/=1 等价与 a=a/1 |
%= | 快捷赋值,例如: a%=1 等价与 a=a%1 |
++ | 自增运算,一元运算符 ,例如: var num1 = 3; num1++ console.log(num1) // num 的值为 4 |
– | 自减运算,一元运算符,例如: var num2 = 3; num2-- console.log(num2) // num2 的值为 2 |
3、三元运算符
名称 | 描述 |
---|---|
条件 ? 值 1 : 值 2 | 如果条件为真,则结果取值 1。否则为值 2。 |
4、位运算符
运算符 | 示例 | 描述 |
---|---|---|
按位与 & | a & b | 在 a,b 的位表示中,每一个对应的位都为 1 则返回 1,否则返回 0 |
按位或 | | `a | b` |
按位异或 ^ | a ^ b | 在 a,b 的位表示中,每一个对应的位,两个不相同则返回 1,相同则返回 0 |
按位非 ~ | ~ a | 反转被操作数的位 |
左移 << | a << b | 将 a 的二进制串向左移动 b 位,右边移入 0 |
算术右移 >> | a >> b | 把 a 的二进制表示向右移动 b 位,丢弃被移出的所有位。(译注:算术右移左边空出的位是根据最高位是 0 和 1 来进行填充的) |
无符号右移 >>> | a >>> b | 把 a 的二进制表示向右移动 b 位,丢弃被移出的所有位,并把左边空出的位都填充为 0 |
上一篇文章 | 下一篇文章 |
---|---|
JavaScript基本语法(二) | JavaScript函数(四) |