Priorità degli operatori JavaScript

La priorità degli operatori (Operator Precedence) descrive l'ordine di esecuzione delle operazioni nell'espressione aritmetica.

La priorità degli operatori di moltiplicazione (*) e divisione (/) è superiore a quella degli operatori di somma (+) e sottrazione (-).

Esempio

Come nella matematica tradizionale, viene eseguita prima l'operazione di moltiplicazione:

let x = 100 + 50 * 3;

Prova personalmente

Quando si utilizzano parentesi tonde, viene calcolato prima l'operazione all'interno delle parentesi tonde:

let x = (100 + 50) * 3;

Prova personalmente

Le operazioni con la stessa priorità (ad esempio * e /) vengono calcolate da sinistra a destra:

let x = 100 / 50 * 3;

Prova personalmente

Valore di priorità dell'operatore

L'espressione tra parentesi viene calcolata prima della parte rimanente dell'espressione, e la funzione viene eseguita prima che il risultato venga utilizzato nell'espressione rimanente:

Priorità Operatore Descrizione Esempio
18 ( ) Espressione di raggruppamento (100 + 50) * 3
17 . proprietà membro person.name
17 [] proprietà membro person["name"]
17 ?. catena opzionale ES2020 x ?. y
17 () chiamata di funzione myFunction()
17 new creazione con parametri new Date("June 5,2022")
16 new creazione senza parametri new Date()

operatore di incrementazione

l'incremento postfisso viene eseguito prima dell'incremento prefisso.

15 ++ incremento postfisso i++
15 -- decremento postfisso i--
14 ++ incremento prefisso ++i
14 -- decremento prefisso --i

operatore NOT

14 ! negazione logica !(x==y)
14 ~ negazione bitwise ~x

operatore unario

14 + unario somma +x
14 - unario negazione -x
14 typeof tipo di dati typeof x
14 void valore nullo valutato void(0)
14 delete rimozione dell'attributo delete myCar.color

operatore aritmetico

l'operazione esponenziale viene eseguita prima della moltiplicazione.

moltiplicazione e divisione vengono eseguite prima di addizione e sottrazione.

13 ** operazione esponenziale ES2016 10 ** 2
12 * moltiplicazione 10 * 5
12 / divisione 10 / 5
12 % rimanendo della divisione 10 % 5
11 + aggiunta 10 + 5
11 - sottrazione 10 - 5
11 + concatenazione "Bill" + "Gates"

operatore di shift

10 << shift a sinistra x << 2
10 >> shift a destra (signed) x >> 2
10 >>> shift a destra (unsigned) x >>> 2

operatore di relazione

9 in proprietà dell'oggetto "PI" in Math
9 instanceof istanza dell'oggetto x instanceof Array

operatore di confronto

9 < minore x < y
9 <= minore o uguale x <= y
9 > maggiore x > y
9 >= maggiore o uguale x >= Array
8 == uguale x == y
8 === strettamente uguale x === y
8 != diverso x != y
8 !== strettamente diverso x !== y

operatore bitwise

7 & o bitwise and x & y
6 ^ o bitwise xor x ^ y
5 | o bitwise o x | y

operatore logico

4 && e logico x && y
3 || o logico x || y
3 ?? unione di valori nulli ES2020 x ?? y

operatore condizionale (ternario)

2 ? : Condizionale ? "sì" : "no"

Operatore di assegnamento

L'assegnamento viene eseguito dopo altre operazioni.

2 = Assegnamento semplice x = y
2 : Assegnamento colonna x: 5
2 += Assegnamento aggiunta x += y
2 -= Assegnamento sottrazione x -= y
2 *= Assegnamento moltiplicazione x *= y
2 **= Assegnamento esponenziale x **= y
2 /= Assegnamento divisione x /= y
2 %= Assegnamento modulo x %= y
2 <<= Assegnamento spostamento a sinistra x <<= y
2 >>= Assegnamento spostamento a destra x >>= y
2 >>>= Spostamento a destra senza segno x >>>= y
2 &= Assegnamento AND bit x &= y
2 |= Assegnamento OR bit x |= y
2 ^= Assegnamento XOR bit x ^= y
2 &&= Assegnamento logico e x &= y
2 ||= Assegnamento logico o x ||= y
2 => Freccia x => y
2 yield Pausa / Ripresa yield x
2 yield* Operatore di delega yield* Operatore di delega yield* x
2 ... Operatore di espansione ... x
1 , Virgola x, y

Vedi anche

Tutorial:Operatori JavaScript

Manuale di riferimento:Operatori JavaScript