Introduzione alle Istruzioni in Javascript
- Le istruzioni in JavaScript sono comandi che l'interprete esegue.
- Le istruzioni possono essere di espressione o di dichiarazione.
- Le istruzioni di espressione hanno effetti collaterali e possono esistere da sole.
- Le istruzioni di dichiarazione creano nuove variabili e funzioni.
- I programmi JavaScript sono sequenze di istruzioni eseguite in ordine.
- Le istruzioni possono essere composte da altre istruzioni.
- Le istruzioni vuote non fanno nulla e sono utili in alcuni casi.
- Le istruzioni condizionali, di ciclo e di salto alterano l'ordine di esecuzione predefinito.
Introduzione alle Istruzioni
In prima istanza, si possono considerare le istruzioni come sentenze o comandi JavaScript.
Proprio come le frasi in Italiano sono terminate e separate l'una dall'altra con i punti, le istruzioni JavaScript sono terminate con i punti e virgola.
Mentre le espressioni sono valutate per produrre un valore, le istruzioni sono eseguite per far accadere qualcosa.
Un modo per "far accadere qualcosa" è valutare un'espressione che ha effetti collaterali. Le espressioni con effetti collaterali, come le assegnazioni e le invocazioni di funzioni, possono esistere da sole come istruzioni, e quando usate in questo modo sono conosciute come istruzioni di espressione. Una categoria simile di istruzioni sono le istruzioni di dichiarazione che dichiarano nuove variabili e definiscono nuove funzioni.
I programmi JavaScript non sono altro che una sequenza di istruzioni da eseguire. Per impostazione predefinita, l'interprete JavaScript esegue queste istruzioni una dopo l'altra nell'ordine in cui sono scritte. Un altro modo per "far accadere qualcosa" è alterare questo ordine predefinito di esecuzione, e JavaScript ha un numero di istruzioni secondarie o strutture di controllo che fanno proprio questo:
-
Istruzioni condizionali
Istruzioni come
if
eswitch
che fanno sì che l'interprete JavaScript esegua o salti altre istruzioni a seconda del valore di un'espressione. -
Istruzioni di ciclo
Istruzioni come
while
efor
che eseguono altre istruzioni ripetutamente fino a quando una condizione non è più vera. -
Istruzioni di salto
Istruzioni come
break
,return
, ethrow
che fanno sì che l'interprete salti a un'altra parte del programma.
In questa lezione introduttiva, ci si concentrerà sulle istruzioni di espressione, le istruzioni composte e le istruzioni vuote. Le istruzioni condizionali, di ciclo e di salto saranno trattate in dettaglio nelle lezioni successive.
Istruzioni di Espressione
I tipi più semplici di istruzioni in JavaScript sono espressioni che hanno effetti collaterali. Le istruzioni di assegnazione sono una categoria principale delle istruzioni di espressione. Per esempio:
saluto = "Ciao " + nome;
i *= 3;
Gli operatori di incremento e decremento, ++
e --
, sono correlati alle istruzioni di assegnazione. Questi hanno l'effetto collaterale di cambiare il valore di una variabile, proprio come se fosse stata eseguita un'assegnazione:
contatore++;
L'operatore delete
ha l'importante effetto collaterale di eliminare una proprietà di un oggetto. Pertanto, viene quasi sempre utilizzato come dichiarazione, piuttosto che come parte di un'espressione più ampia:
delete o.x;
Le chiamate di funzione sono un'altra categoria principale delle istruzioni di espressione. Per esempio:
console.log(messaggioDiDebug);
visualizzaGrafico(dati);
Queste chiamate di funzione sono espressioni, ma hanno effetti collaterali che influenzano l'ambiente host o lo stato del programma, e vengono utilizzate qui come istruzioni. Se una funzione non ha alcun effetto collaterale, non ha senso chiamarla, a meno che non faccia parte di un'espressione più ampia o di una dichiarazione di assegnazione. Per esempio, non si calcolerebbe semplicemente un coseno e si scarterebbe il risultato:
Math.cos(x);
Ma è possibile calcolare il valore e assegnarlo a una variabile per uso futuro:
cx = Math.cos(x);
Si noti che ogni riga di codice in ciascuno di questi esempi è terminata con un punto e virgola.
Istruzioni Composte e Vuote
Proprio come l'operatore virgola combina multiple espressioni in una singola espressione, un blocco di istruzioni combina multiple istruzioni in una singola istruzione composta. Un blocco di istruzioni è semplicemente una sequenza di istruzioni racchiuse tra parentesi graffe. Quindi, le seguenti righe agiscono come una singola istruzione e possono essere utilizzate ovunque JavaScript si aspetti una singola istruzione:
{
x = Math.PI;
cx = Math.cos(x);
console.log("cos(π) = " + cx);
}
Ci sono alcune cose da notare riguardo questo blocco di istruzioni. Primo, esso non termina con un punto e virgola. Le istruzioni primitive all'interno del blocco terminano con punti e virgola, ma il blocco stesso no. Secondo, le righe all'interno del blocco sono indentate rispetto alle parentesi graffe che le racchiudono. Questo è opzionale, ma rende il codice più facile da leggere e comprendere.
Proprio come le espressioni spesso contengono sottoespressioni, molte istruzioni JavaScript contengono sotto-istruzioni. Formalmente, la sintassi JavaScript di solito permette una singola sotto-istruzione. Per esempio, la sintassi del ciclo while
include una singola istruzione che funge da corpo del ciclo. Utilizzando un blocco di istruzioni, è possibile inserire qualsiasi numero di istruzioni all'interno di questa singola sotto-istruzione consentita.
Un'istruzione composta consente di utilizzare multiple istruzioni dove la sintassi JavaScript si aspetta una singola istruzione. L'istruzione vuota è l'opposto: consente di non includere istruzioni dove una è attesa. L'istruzione vuota appare così:
;
L'interprete JavaScript non compie alcuna azione quando esegue un'istruzione vuota. L'istruzione vuota è occasionalmente utile quando si desidera creare un ciclo che ha un corpo vuoto. Si consideri il seguente ciclo for
(i cicli for
saranno trattati nelle prossime lezioni):
// Inizializza un array di nome a
for (let i = 0; i < a.length; a[i++] = 0) {
// corpo vuoto
}
In questo ciclo, tutto il lavoro è svolto dall'espressione a[i++] = 0
, e non è necessario alcun corpo del ciclo. La sintassi JavaScript richiede tuttavia un'istruzione come corpo del ciclo, quindi viene utilizzata un'istruzione vuota, solo un punto e virgola nudo.
Si noti che l'inclusione accidentale di un punto e virgola dopo la parentesi destra di un ciclo for
, un ciclo while
, o un'istruzione if
può causare bug frustranti che sono difficili da rilevare. Per esempio, il seguente codice probabilmente non fa quello che l'autore intendeva:
// Ops! Questa riga non fa nulla...
if ((a === 0) || (b === 0)); // istruzione vuota accidentale
// e questa riga viene sempre eseguita
o = null;
Quando si usa intenzionalmente l'istruzione vuota, è una buona idea commentare il codice in modo che sia chiaro che ciò viene fatto apposta. Per esempio:
// Inizializza un array con valori zero
for (let i = 0; i < a.length; a[i++] = 0);