JavaScript-Operaattorin etusijaisuus
- Edellinen sivu JS-regular-expressions
- Seuraava sivu JS-poikkeamat
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;
Kun käytetään ympyröllisiä sulkuja, suoritetaan ensin ympyröllisiä sulkuja sisällä olevat operaatiot:
let x = (100 + 50) * 3;
Prioriteetin omaavat operaatiot (esim. * ja /) suoritetaan vasemmalta oikealle:
let x = 100 / 50 * 3;
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" |
AsetuslaskinAsetus 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 |
- Edellinen sivu JS-regular-expressions
- Seuraava sivu JS-poikkeamat