# JavaScript/Operatori e casting

JavaScript
Copertina Tutti i moduli · Sviluppo
* IntroduzioneJavaScript/Introduzione
* Il nostro primo programmaJavaScript/Il nostro primo programma
* Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
* Operatori e castingJavaScript/Operatori e casting
* Le strutture di controllo
** SelezioneJavaScript/Selezione
** IterazioneJavaScript/Iterazione
* Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
* Programmazione ad oggettiJavaScript/Oggetti
** Oggetto StringJavaScript/Oggetto String
** Oggetto MathJavaScript/Oggetto Math
** Oggetto DateJavaScript/Oggetto Date
** Oggetto ArrayJavaScript/Oggetto Array
* CookieJavaScript/Cookie
* TimerJavaScript/Timer
* L'oggetto windowJavaScript/BOM
** Gli eventi nel BOMJavaScript/Gli eventi nel BOM
** Oggetto documentJavaScript/Oggetto document
** Altri oggetti del BOMJavaScript/Altri oggetti del BOM
* Il Document Object ModelJavaScript/DOM
** Proprietà e metodiJavaScript/Proprietà e metodi del DOM
** Gli eventi nel DOMJavaScript/Gli eventi nel DOM
* Espressioni regolariJavaScript/Espressioni regolari
* AJAX
** Introduzione ad AJAXJavaScript/Introduzione ad AJAX
** Usare AJAXJavaScript/Usare AJAX
* Costruttori e prototipiJavaScript/Costruttori e prototipi
* AppendiceJavaScript/Appendice
* CreditiJavaScript/Crediti
Modifica il sommario
In questo modulo affronteremo l'uso degli operatori e della conversione (casting) per lavorare con i dati in JavaScript. Di ogni operatore verrà indicato il tipo di dati con i quali lavora e il tipo di dato restituito.

## Operatori matematici

Questi operatori lavorano con valori interi o float e restituiscono sempre un valore numerico; sono piuttosto intuitivi in quanto corrispondono ai normali operatori algebrici. Sono:
* + e - (addizione e sottrazione algebrica)
* * e / (moltiplicazione e divisione algebrica)
* % restituisce il resto della divisione intera tra i due operanti (modulo).
Quando si lavora con gli operatori numerici è bene fare attenzione alla precedenza algebrica delle operazioni. Vengono infatti valutate prima moltiplicazioni e divisioni e poi addizioni e sottrazioni. È tuttavia possibile utilizzare delle parentesi per comporre più operatori e più espressioni; in JavaScript non esistono distinzioni tra parentesi tonde, quadre o graffe, in quanto si usano solo quelle tonde.
Vediamo, ad esempio, come convertire un valore di temperatura espresso in gradi Fahrenheit al suo corrispondente in gradi Celsius. Inseriamo nella pagina HTML questo codice:
Analizziamo riga per riga il listato JavaScript:
* la prima riga dichiara la variabile gradiF e le assegna il valore restituito dalla funzione prompt.
    Un esempio di finestra prompt Il metodo prompt visualizza una finestra di input che mostra il testo indicato come primo argomento e un valore di default indicato come secondo argomento (separato tramite la virgola). Nel nostro caso, la funzione mostrerà una finestra chiedendo di introdurre il valore della temperatura in gradi Fahrenheit proponendo come valore 100. L'utente è libero di modificare o meno questo valore e di premere uno dei due pulsanti OK o Annulla. Premendo OK, la funzione restituisce il valore immesso dall'utente, altrimenti restituisce 0.
* la seconda riga calcola il valore della temperatura in gradi Celsius usando l'equazione apposita
* la terza riga mostra una finestra alert (già vista nei precedenti moduli) contenente il valore della temperatura in gradi Celsius.
Si noti che il metodo prompt restituisce sempre un valore stringa ma, nel momento in cui la variabile stringa gradiF viene usata insieme ad operatori numerici, il suo valore viene automaticamente convertito in un valore numerico. Possiamo vedere inoltre che, poiché il metodo alert richiede un valore stringa mentre noi abbiamo passato un valore numerico, JavaScript converte automaticamente il numero in una stringa contenente esattamente il valore richiesto.
Nel comporre le espressioni è necessario tenere conto della precedenza delle operazioni (prima vengono valutate moltiplicazioni e divisioni, poi addizioni e sottrazioni). Nel comporre le espressioni possono risultare utili le parentesi; in questo caso è possibile usare solo parentesi tonde (JavaScript non supporta l'uso di parentesi quadre e graffe nelle espressioni). Ad esempio:
Esistono poi due operatori chiamati unari in quanto lavorano su un solo dato numerico. Sono:
* ++ incrementa di uno il valore della variabile
* -- decrementa di uno il valore della variabile
Questo operatore può essere usato da solo oppure all'interno di un'espressione:
È possibile inoltre nel caso di istruzioni come
Usare la notazione:

## Operatori stringa

L'operazione più utilizzata quando si lavora con le stringhe è la concatenazione, che consiste nell'unire due stringhe accostandole una di seguito all'altra. L'operatore di concatenazioni in JavaScript è +. Vediamo alcuni esempi:
L'output di questo breve listato sono due finestre alert contenenti il testo Io sono un utente di wikibooks! e Io mi chiamo Luigi. Si noti lo spazio prima delle virgolette. Possiamo quindi ampliare l'esempio precedente modificando l'ultima riga con:
In questo caso la variabile gradiC viene convertita automaticamente in una stringa.

## Operatori booleani

Sono chiamati operatori booleani o di confronto quelli che restituiscono un valore booleano (vero o falso) e confrontano due valori dello stesso tipo di dato. Sono:
* < (minore)
* <= (minore o uguale)
* == (uguale)
* >= (maggiore o uguale)
* > (maggiore)
Tranne che per ==, il loro uso è strettamente legato ai dati numerici ed è intuitivo. Ad esempio:
È possibile inoltre comparare le stringhe. Ad esempio:
È possibile inoltre comporre le espressioni booleane usando gli operatori della logica, che lavorano con valori booleani e restituiscono a loro volta un valore bollano. Sono:
* && (corrisponde alla congiunzione logica, et)
* || (corrisponde alla disgiunzione logica, vel)
* ! (corrisponde alla negazione logica, non)
Anche in questo caso è possibile comporre le espressioni con le parentesi
Se JavaScript si aspetta un dato booleano e riceve un altro tipo di dato, converte in false le stringhe vuote e il numero 0, in true il resto.

## Comporre le espressioni

Dopo aver analizzato gli operatori, è possibile comporre le espressioni. Un'istruzione è un insieme di uno o più valori legati da operatori che restituisce un valore; per comporre un'espressione possiamo usare quindi qualsiasi istruzioni restituisca un valore, ad esempio:
è una espressione valida, in quanto la funzione prompt restituisce un valore; il risultato è una casella di prompt seguita da un alertbox che dà il benvenuto all'utente