JavaScript-Operaattorin etusijaisuus

Laskin prioriteetti (Operator Precedence) kuvaa laskennan suoritusjärjestystä aritmeettisessa lausekkeessa.

Kertolasku (*) ja jakolasku (/) ovat korkeampaa prioriteettia kuin lisäys (+) ja vähennys (-).

Esimerkki

Kuten perinteisessä matematiikassa, suoritetaan ensin kertolasku:

let x = 100 + 50 * 3;

Kokeile itse

Kun käytetään ympyröllisiä sulkuja, suoritetaan ensin ympyröllisiä sulkuja sisällä olevat operaatiot:

let x = (100 + 50) * 3;

Kokeile itse

Prioriteetin omaavat operaatiot (esim. * ja /) suoritetaan vasemmalta oikealle:

let x = 100 / 50 * 3;

Kokeile itse

Laskin prioriteettiarvot

Lähestytään ensin silloin tarkoitetun lausekkeen sisällä olevia lausekkeita, ennen kuin suoritetaan loput lausekkeesta, ja suoritetaan ensin funktiot ennen kuin ne lisätään lopulliseen tulokseen:

Prioriteetti Laskin Kuvaus Esimerkki
18 ( ) Ilmentymäryhmä (100 + 50) * 3
17 . 属于成员 person.name
17 [] 属于成员 person["name"]
17 ?. 可选链 ES2020 x ?. y
17 () 函数调用 myFunction()
17 new 带参的新建 new Date("June 5,2022")
16 new 不带参的新建 new Date()

增量运算符

后缀递增在前缀递增之前执行。

15 ++ 后缀递增 i++
15 -- 后缀递减 i--
14 ++ 前缀递增 ++i
14 -- 前缀递减 --i

NOT 运算符

14 ! 逻辑非 !(x==y)
14 ~ 按位非 ~x

一元运算符

14 + 一元加 +x
14 - 一元减 -x
14 typeof 数据类型 typeof x
14 void 评估空 void(0)
14 delete 属性删除 delete myCar.color

算术运算符

指数运算在乘法之前执行。

乘法和除法在加法和减法之前执行。

13 ** 指数运算 ES2016 10 ** 2
12 * 10 * 5
12 / 10 / 5
12 % 除法余数 10 % 5
11 + 10 + 5
11 - 10 - 5
11 + 串联 "Bill" + "Gates"

移位运算符

10 << 左移 x << 2
10 >> 右移(带符号) x >> 2
10 >>> 右移(无符号) x >>> 2

关系运算符

9 in 对象中的属性 "PI" in Math
9 instanceof 对象的实例 x instanceof Array

比较运算符

9 < 小于 x < y
9 <= 小于或等于 x <= y
9 > 大于 x > y
9 >= 大于或等于 x >= Array
8 == 等于 x == y
8 === 严格相等 x === y
8 != 不相等 x != y
8 !== 严格不相等 x !== y

位运算符

7 & 按位与 x & y
6 ^ 按位异或 x ^ y
5 | 按位或 x | y

逻辑运算符

4 && 逻辑与 x && y
3 || 逻辑或 x || y
3 ?? 空值合并 ES2020 x ?? y

条件(三元)运算符

2 ? : Ehdollinen ? "kyllä" : "ei"

Asetuslaskin

Asetus suoritetaan muiden operaatioiden jälkeen.

2 = Yksinkertainen asetus x = y
2 : Kolmipiste-asetus x: 5
2 += Lisääminen asetus x += y
2 -= Vähennys asetus x -= y
2 *= Kertominen asetus x *= y
2 **= Asteen asetus x **= y
2 /= Jakaminen asetus x /= y
2 %= Jäljellä olevan osan asetus x %= y
2 <<= Vasen siirtymän asetus x <<= y
2 >>= Oikea siirtymän asetus x >>= y
2 >>>= Nousuvasen siirtymän epäsymmetrinen eksklusiivinen junaus x >>>= y
2 &= Bittinen ja asetus x &= y
2 |= Bittinen tai asetus x |= y
2 ^= Bittinen epäsymmetrinen eksklusiivinen junaus asetus x ^= y
2 &&= Looginen ja asetus x &= y
2 ||= Looginen tai asetus x ||= y
2 => Nuoli x => y
2 yield Pysäytä / palauta yield x
2 yield* Delegointilaskin yield* x
2 ... Laajennuslaskin ... x
1 , pilkku x, y

Katso myös

Oppaat:JavaScript operaattorit

Viittauskirja:JavaScript operaattorit