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,然后赋值给变量

var i = 0
var a = i++ 
console.log(a,i) // => a=0;i=1;
a = ++i
console.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 *typeof typeof …
17 *void void …
17 *delete delete …
17 *await await …
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 *赋值 …=…, …+=…, …-=…, …*=… , …\=…
2 yield yield…
2 yield* yield*…
1 *展开运算符 ... …
0 *逗号 …,…

数组比较大小

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

var a = [1,2]
var b = a

a === b // true
a == b // true

var c = [1,2]
var d = [1,2]

c === d // false
c == d // false

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

var a = [1, 2, 3],
    b = [1, 2, 4]

a > b //false
a < b //true