JavaScript支持一下几种运算符:
- 算术运算符
- 比较运算符
- 关系运算符
- 赋值运算符
- 条件运算符
算术运算符
运算符 | 描述 |
---|
+ | 两个运算数相加 |
- | 第一个运算数减去第二个运算数 |
* | 运算数相乘 |
/ | 分子除以分母 |
% | 模数运算符,整除后的余数 |
++ | 增量运算符,整数值逐次加1 |
– | 减量运算符,整数值逐次减1 |
Note:“+” 也可以用于字符串的连接。
比较运算符
运算符 | 描述 |
---|
== | 检查两个运算数的值是否相等,如果是,则结果为true |
=== | 绝对等于(值和类型均相等) |
!= | 检查两个运算数的值是否相等,如果不相等,则结果为true |
> | 检查左边运算数是否大于右边运算数,如果是,则结果为true |
< | 检查左边运算数是否小于右边运算数,如果是,则结果为true |
>= | 检查左边运算数是否大于或者等于右边运算数,如果是,则结果为true |
<= | 检查左边运算数是否小于或者等于运算数,如果是,则结果为true |
关系运算符
运算符 | 描述 |
---|
&& | 称为逻辑与运算符。如果两个运算数都非零,则结果为true |
|| | 称为逻辑或运算符。如果两个运算数中任何一个非零,则结果为true |
! | 称为逻辑非运算符。用于改变运算数的逻辑状态。如果逻辑状态为true,则通过逻辑非运算符可以使逻辑状态变为false |
Note: 逻辑(关系)运算符的优先级是:!、&& 、||
位运算符
if: A=2, B=3
运算符 | 描述 | 例子 |
---|
& | 称为按位与运算符。它对整型参数的每一个二进制位进行布尔与操作 | A & B = 2 |
| | 称为按位或运算符。它对整型参数的每一个二进制位进行布尔或操作 | A |
^ | 称为按位异或运算符。它对整型参数的每一个二进制位进行布尔异或操作。异或运算是指第一个参数或者第二个参数为true,并且不包括两个参数都为true的情况,则结果为true | (A ^ B) = 1 |
~ | 称为按位非运算符。它是一个单运算符,对运算数的所有二进制位进行取反操作 | ~B = -4 |
<< | 称为按位左移运算符。它把第一个运算数的所有二进制位向左移动第二个运算数指定的位数,而新的二进制位补0。将一个数向左移动一个二进制位相当于将该数乘以2,向左移动两个二进制位相当于将该数乘以4,以此类推 | A << 1 = 4(A*2) |
>> | 称为按位右移运算符。它把第一个运算数的所有二进制位向右移动第二个运算数指定的位数。为了保持运算结果的符号不变,左边二进制位补0或1取决于原参数的符号位。如果第一个运算数是正的,运算结果最高位补0;如果第一个运算数是负的,运算结果最高位补1。将一个数向右移动一位相当于将该数乘以2,向右移动两位相当于将该数乘以4,以此类推 | A >> 1 = 1(A/2) |
>>> | 称为0补最高位无符号右移运算符。这个运算符与>>运算符相像,除了位移后左边总是补0 | A >>> = 1 |
赋值运算符
运算符 | 描述 |
---|
= | 简单赋值运算符,将右边运算数的值赋给左边运算数 |
+= | 加等赋值运算符,将右边运算符与左边运算符相加并将运算结果赋给左边运算数 |
-= | 减等赋值运算符,将左边运算数减去右边运算数并将运算结果赋给左边运算数 |
*= | 乘等赋值运算符,将右边运算数乘以左边运算数并将运算结果赋给左边运算数 |
/= | 除等赋值运算符, 将左边运算数除以右边运算数并将运算结果赋值给左边运算数 |
%= | 模等赋值运算符,用两个运算数做取模运算并将运算结果赋值给左边运算数 |
条件运算符
运算符 | 描述 | 例子 |
---|
? : | 条件表达式 | 如果条件为真 ? X值 : Y值 |
typeof 运算符
判断参数的数据类型,返回值为字符串
类型 | Typeof 返回值 |
---|
数值 | “number” |
字符串 | “string” |
布尔 | “boolean” |
对象 | “object” |
函数 | “function” |
未定义 | “undefined” |
空 | “object” |
对象运算符
运算符 | 描述 |
---|
in | 判断左侧运算数是否位右侧运算符的成员 |
instanceof | 判断对象实例是否属于某个类或者构造函数 |
new | 根据构造函数创建一个新的对象,并初始化该对象 |
delete | 删除指定对象的属性,数组元素或者变量 |
.和[] | 存取对象和数据元素 |
() | 函数调用,改变运算符优先级等 |