Skip to content

Latest commit

History

History
132 lines (114 loc) · 5.58 KB

File metadata and controls

132 lines (114 loc) · 5.58 KB

运算相关知识点

i++与++i

i++: 优先赋值给变量,然后自身+1

++i: 优先自身+1,然后赋值给变量

vari=0vara=i++console.log(a,i)// => a=0;i=1;a=++iconsole.log(a,i)// => a=2;i=2;

运算符优先级

关联性

关联性决定了拥有相同优先级的运算符的执行顺序 左关联(左到右)相当于把左边的子表达式加上小括号(a OP b) OP c 右关联(右到左)相当于a OP (b OP c),赋值运算符是典型右关联的

计算优先级

简单版

1.特等优先
  • 21 圆括号
2.对象&函数
  • 20 面向对象与函数相关
  • 19 无参数new (new F)
3.特殊运算
  • 18 后置加减
  • 17 前置加减 & 逻辑非(!n) & tvda
4.数学运算
  • 16 幂
  • 15 乘除摸
  • 14 加减法
5.逻辑判断
  • 12 大小判断 & instanceof
  • 11 相等判断
  • 7 &&
  • 6 ||
  • 4 ? :
6.其他(最低等级)
  • 3 赋值
  • 1 展开运算符
  • 0 逗号

详细版

  • 同级运算按从左到右运算
  • *常用
优先级运算类型运算符
21*圆括号(…)
20*成员访问… . …
20*需计算的成员访问(中括号)…[…]
20*new (带参数列表)new…(…)
20*函数调用…(…)
20*可选链(Optional chaining)?.
19*new (无参数列表)new …
18*后置递增(运算符在后)…++
18*后置递减(运算符在后)…--
17*逻辑非! …
17*按位非~ …
17*一元加法+ …
17*一元减法- …
17*前置递增++ …
17*前置递减-- …
17*typeoftypeof …
17*voidvoid …
17*deletedelete …
17*awaitawait …
16*幂… ** …
15*乘法… * …
15*除法… / …
15*取模… % …
14*加法… + …
14*减法… - …
13按位左移… << …
13按位右移… >> …
13无符号右移… >>> …
12*小于… < …
12*小于等于… <= …
12*大于… > …
12*大于等于… >= …
12*in… in …
12*instanceof… instanceof …
11*等号… == …
11*非等号… != …
11*全等号… === …
11*非全等号… !== …
10*按位与… & …
9*按位异或… ^ …
8*按位或… | …
7*逻辑与… && …
6*逻辑或… || …
5空值合并… ?? …
4*条件运算… ? … : …
3*赋值…=…, …+=…, …-=…, …*=… , …\=…
2yieldyield…
2yield*yield*…
1*展开运算符... …
0*逗号…,…

数组比较大小

引用类型间的相等判断(无论是==还是===)是比较引用地址

vara=[1,2]varb=aa===b// truea==b// truevarc=[1,2]vard=[1,2]c===d// falsec==d// false

引用类型间比较大小是按照字典序比较,就是先比第一项谁大,相同再去比第二项

vara=[1,2,3],b=[1,2,4]a>b//falsea<b//true