慕课网JavaScript深入浅出学习笔记之表达式和运算符
JavaScript表达式和运算符
表达式
表达式是一种JS短语,可使JS解释器用来产生一个值。——《JavaScript权威指南》
-
原始表达式
- 常量、直接量
345,string - 关键字
null,this - 变量
a, b, c
- 常量、直接量
-
复合表达式 # 原始表达式+运算符
a + b -
数组、对象的初始化表达式
[1, 2] == new Array(1, 2);
[a,,b] == [a, undedined, b]
{c: 1, d: 2}
-
函数表达式
var foo = function(){}; -
属性访问表达式
var a = {x: 1};可以通过a.x、a['x']访问对象的属性 -
调用表达式
function(); -
对象创建表达式
new Func(x, y);
运算符
按照操作数的数量分类:
- 一元
- x - 二元
a + b - 三元
c ? a : b
按照运算符的功能分类:
- 赋值
x += 1# =、+=、-= - 比较
x == y# ==、<、> - 算术
x - y# +、-、*、/、% - 位
a | b - 逻辑
exp1 && exp2 - 字符串
"a" + "b" - 特殊
delete obj.xnewininstanceof
运算符优先级,从高到低排列:摘自MDN
| 优先级 | 运算类型 | 关联性 | 运算符 |
|---|---|---|---|
| 20 | 圆括号 | n/a | ( … ) |
| 19 | 成员访问 | 从左到右 | … . … |
| . | 需计算的成员访问 | 从左到右 | … [ … ] |
| . | new (带参数列表) | n/a | new … ( … ) |
| . | 函数调用 | 从左到右 | … ( … ) |
| 18 | new (无参数列表) | 从右到左 | new … |
| 17 | 后置递增(运算符在后) | n/a | … ++ |
| . | 后置递减(运算符在后) | … -- |
|
| 16 | 逻辑非 | 从右到左 | ! … |
| . | 按位非 | ~ … |
|
| . | 一元加法 | + … |
|
| . | 一元减法 | - … |
|
| . | 前置递增 | ++ … |
|
| . | 前置递减 | -- … |
|
| . | typeof | typeof … |
|
| . | void | void … |
|
| . | delete | delete … |
|
| . | await | await … |
|
| 15 | 幂 | 从右到左 | … ** … |
| 14 | 乘法 | 从左到右 | … * … |
| . | 除法 | … / … |
|
| . | 取模 | … % … |
|
| 13 | 加法 | 从左到右 | … + … |
| . | 减法 | … - … |
|
| 12 | 按位左移 | 从左到右 | … << … |
| . | 按位右移 | … >> … |
|
| . | 无符号右移 | … >>> … |
|
| 11 | 小于 | 从左到右 | … < … |
| . | 小于等于 | … <= … |
|
| . | 大于 | … > … |
|
| . | 大于等于 | … >= … |
|
| . | in | … in … |
|
| . | instanceof | … instanceof … |
|
| 10 | 等号 | `从左到右 | … == …` |
| . | 非等号 | … != … |
|
| . | 全等号 | … === … |
|
| . | 非全等号 | … !== … |
|
| 9 | 按位与 | 从左到右 | … & … |
| 8 | 按位异或 | 从左到右 | … ^ … |
| 7 | 按位或 | 从左到右 | … 丨 … |
| 6 | 逻辑与 | 从左到右 | … && … |
| 5 | 逻辑或 | 从左到右 | … 丨丨 … |
| 4 | 条件运算符 | 从右到左 | … ? … : … |
| 3 | 赋值 | 从右到左 | … = … |
| . | … += … |
||
| . | … -= … |
||
| . | … *= … |
||
| . | … /= … |
||
| . | … %= … |
||
| . | … <<= … |
||
| . | … >>= … |
||
| . | … >>>= … |
||
| . | … &= … |
||
| . | … ^= … |
||
| . | … 丨= … |
||
| 2 | yield | 从右到左 | yield … |
| . | yield* | yield* … |
|
| 1 | 展开运算符 | n/a | ... … |
| 0 | 逗号 | 从左到右 | … , … |

浙公网安备 33010602011771号