Precedenza tra gli operatori
Aggiornamento: novembre 2007
La precedenza tra gli operatori è costituita da un insieme di regole JScript che determinano l'ordine in cui il compilatore esegue le operazioni durante la valutazione di un'espressione. Le operazioni con precedenza maggiore vengono eseguite prima di quelle con precedenza minore. La moltiplicazione viene ad esempio eseguita prima dell'addizione.
Tabella delle precedenze
Nella tabella che segue sono elencati gli operatori JScript nell'ordine di precedenza.
Precedenza |
Ordine di valutazione |
Operatore |
Descrizione |
---|---|---|---|
15 |
da sinistra a destra |
., [], () |
Accesso a campi, indicizzazione di matrici, chiamate di funzioni e raggruppamento di espressioni |
14 |
da destra a sinistra |
++, --, -, ~, !, delete, new, typeof, void |
Operatori unari, tipo di dati restituito, creazione di oggetti, valori non definiti |
13 |
da sinistra a destra |
*, /, % |
Moltiplicazione, divisione, divisione di modulo |
12 |
da sinistra a destra |
+, - |
Addizione e concatenazione di stringhe, sottrazione |
11 |
da sinistra a destra |
<<, >>, >>> |
Spostamento per bit |
10 |
da sinistra a destra |
<, <=, >, >=, instanceof |
Minore di, minore o uguale a, maggiore di, maggiore o uguale a instanceof |
9 |
da sinistra a destra |
==, !=, ===, !== |
Uguaglianza, disuguaglianza, identità e non identità |
8 |
da sinistra a destra |
& |
AND bit per bit |
7 |
da sinistra a destra |
^ |
XOR bit per bit |
6 |
da sinistra a destra |
| |
OR bit per bit |
5 |
da sinistra a destra |
&& |
AND logico |
4 |
da sinistra a destra |
|| |
OR logico |
3 |
da destra a sinistra |
?: |
Condizionale |
2 |
da destra a sinistra |
=, OP= |
Assegnazione, assegnazione composta |
1 |
da sinistra a destra |
, (virgola) |
Valutazione multipla |
Tramite l'utilizzo delle parentesi in un'espressione si modifica l'ordine di valutazione determinato dalla precedenza tra gli operatori . L'espressione racchiusa tra parentesi viene quindi valutata prima che il relativo valore venga utilizzato nel resto dell'espressione.
Ad esempio:
z = 78 * (96 - 3 + 45)
Nella precedente espressione sono presenti cinque operatori: =, *, (), - e +. In base alle regole di precedenza, tali operatori verranno valutati nel seguente ordine: (), -, +, *, =.
Innanzitutto viene eseguita la valutazione dell'espressione racchiusa tra parentesi. In questa espressione sono presenti un operatore di addizione e un operatore di sottrazione. Tali operatori hanno la medesima precedenza e verranno valutati da sinistra a destra. Innanzitutto si sottrae il numero 3 da 96, con il risultato di 93. Quindi si aggiunge 45 a 93, con il risultato di 139.
Viene quindi eseguita la moltiplicazione. Viene moltiplicato il numero 78 al numero 139, in modo da ottenere il valore 10764.
L'assegnazione viene eseguita per ultima. Il numero 10764 viene assegnato a z.