JavaScript 运算符
JavaScript定义了51个运算符
优先级:表示运算符参与运算的先后顺序.数字越大,运算优先级就越高;数字相等,则运算等级相同,将根据位置决定运算优先顺序.
操作类型:表示运算符所要操作的数据类型
运算顺序:表示运算符操作对象的方向,如从左到右或从右到左
JavaScript运算符 | ||||
---|---|---|---|---|
运算符 | 说明 | 优先级 | 操作类型 | 运算顺序 |
. | 读写对象的类型 | 15 | 对象.标识符 | 从左到右 |
[] | 数组下标 | 15 | 数组[整数] | 从左到右 |
() | 调用函数 | 15 | 函数(参数) | 从左到右 |
new | 创建新对象 | 15 | 构造函数调用 | 从右到左 |
++ | 先递增或后递增运算 | 14 | 变量 对象的属性 数组的元素 | 从右到左 |
– | 先递减或后递减运算 | 14 | 变量 对象的属性 数组的元素 | 从右到左 |
- | 一元减法运算(或取负 取反) | 14 | 数字 | 从右到左 |
+ | 一元加法运算 | 14 | 数字 | 从右到左 |
~ | 按位取反操作 | 14 | 整数 | 从右到左 |
! | 逻辑取反操作 | 14 | 布尔值 | 从右到左 |
delete | 删除对象的一个属性定义 | 14 | 变量 对象的属性 数组的元素 | 从右到左 |
typeof | 返回数据类型 | 14 | 任意 | 从右到左 |
void | 返回未定义的值 | 14 | 任意 | 从右到左 |
* | 乘法运算 | 13 | 数字 | 从左到右 |
/ | 除法运算 | 13 | 数字 | 从左到右 |
% | 取余数运算 | 13 | 数字 | 从左到右 |
+ | 加法运算 | 12 | 数字 | 从左到右 |
- | 减法运算 | 12 | 数字 | 从左到右 |
+ | 连接字符串操作 | 12 | 字符串 | 从左到右 |
<< | 左移 | 11 | 整数 | 从左到右 |
>> | 带符号右移 | 11 | 整数 | 从左到右 |
<< | 不带符号右移 | 11 | 整数 | 从左到右 |
< | 小于 | 10 | 数字 字符串 | 从左到右 |
<= | 小于等于 | 10 | 数字 字符串 | 从左到右 |
> | 大于 | 10 | 数字 字符串 | 从左到右 |
>= | 大于等于 | 10 | 数字 字符串 | 从左到右 |
instanceof | 检查对象类型 | 10 | 对象 构造函数 | 从左到右 |
in | 检查一个属性是否存在 | 10 | 字符串in对象 | 从左到右 |
== | 比较是否相等 | 9 | 任意 | 从左到右 |
!= | 比较是否不等 | 9 | 任意 | 从左到右 |
=== | 比较是否等同 | 9 | 任意 | 从左到右 |
!== | 比较是否不等同 | 9 | 任意 | 从左到右 |
& | 按位与操作 | 8 | 整数 | 从左到右 |
^ | 按位异或操作 | 7 | 整数 | 从左到右 |
| | 按位或操作 | 6 | 整数 | 从左到右 |
&& | 逻辑与操作 | 5 | 布尔值 | 从左到右 |
|| | 逻辑或操作 | 4 | 布尔值 | 从左到右 |
?: | 条件运算符(包含3个运算数) | 3 | 布尔值?任意:任意 | 从右到左 |
= | 赋值运算 | 2 | 变量 对象的属性 数组的元素=任意 | 从右到左 |
*= | 附带乘法操作的赋值运算 | 2 | 变量 对象的属性 数组的元素*=任意 | 从右到左 |
/= | 附带除法操作的赋值运算 | 2 | 变量 对象的属性 数组的元素/=任意 | 从右到左 |
%= | 附带取余操作的赋值运算 | 2 | 变量 对象的属性 数组的元素%=任意 | 从右到左 |
+= | 附带加法操作的赋值运算符 | 2 | 变量 对象的属性 数组的元素+=任意 | 从右到左 |
-= | 附带减法操作的赋值运算符 | 2 | 变量 对象的属性 数组的元素-=任意 | 从右到左 |
<<= | 附带左移操作的赋值运算符 | 2 | 变量 对象的属性 数组的元素<<=任意 | 从右到左 |
>>= | 附带带符号右移的赋值运算 | 2 | 变量 对象的属性 数组的元素>>=任意 | 从右到左 |
>>>= | 附带不带符号右移的赋值运算 | 2 | 变量 对象的属性 数组的元素>>>=任意 | 从右到左 |
&= | 附带按位与操作的赋值运算 | 2 | 变量 对象的属性 数组的元素&=任意 | 从右到左 |
^= | 附带按位异或操作的赋值运算 | 2 | 变量 对象的属性 数组的元素^=任意 | 从右到左 |
|= | 附带按位或操作的赋值运算 | 2 | 变量 对象的属性 数组的元素|=任意 | 从右到左 |
, | 多重计算操作 | 1 | 任意 | 从左到右 |
根据操作运算数的数量,运算符可以分为以下3类:
一元运算符:1个运算符仅对1个运算数执行某种运算,如值取反 位移 获取值类型 删除属性定义等
二元运算符:1个运算符必须包含2个运算数.例如,两个数相加 两个值比较.大部分运算符都是对两个运算数执行运算.
三元运算符:1个运算符必须包含3个运算数.JavaScript仅有一个三元运算符(?:运算符),该运算符就是条件运算符,它是if语句的简化版