L'espressione base del controllo di flusso è:
if (<espressione>) <istruzione>|{<blocco di istruzioni>}
[else <istruzione>|{<blocco di istruzioni>}]
dove l'espressione è booleana, cioè può assumere i valori true o false. L'istruzione principale può essere seguita dall'else che indica un'istruzione alternativa da eseguire quando la prima non è verificata.
Se occorre effettuare una serie di test si può iterare l'else in questo modo:
if (<espressione>) {<istruzione>}
else (<espressione>) {istruzione}
else (<espressione>) {istruzione}
else (espressione) {istruzione}
else <istruzione>;
per cui si valuta l'espressione accanto all'else e viene eseguita se l'espressione è vera, altrimenti si esegue il blocco di istruzioni dell'ultimo else.
Alternativa a questa disposizione e l'istruzione switch. La forma sintattica è:
switch (<espressione>) {
case <costante1>: <istruzioni>
break;
case <costante2>: <istruzioni>
break;
...
default <istruzioni>
}
Il valore dell'espressione viene confrontato con i diversi valori dei case e quando viene trovata corrispondenza, si esegue l'istruzione o le sequenze di istruzioni associati, anche se al case è associato uno statement vuoto oppure un'ulteriore switch. L'istruzione di default è opzionale e viene eseguita solo se non è trovata corrispondenza. L'istruzione break opzionale in quanto consente solo al programma di uscire dal ciclo di switch, se fosse mancante il programma continuerebbe a confrontare il valore.
Molto valida è anche l'espressione condizionale ternaria che fonde l'if...else in un unico comando che è il ? conosciuto anche come operatore ternario. La sua forma è (fare attenzione ai due punti):
<espressione1> ? <espressione2> : <Espressione3>
per cui se è vera la prima espressione viene eseguita la seconda, se falsa viene eseguita la terza. Si noti l'esempio:
"Ho trovato", counter, (counter==1)?"parola.":"parole."
per cui se counter è maggiore di 1 ad invece che "parola" verrà stampato "parole"
Un esempio molto elegante di operatore ternario è quello che serve a determinare il browser utilizzato:
ie = document.all?1:0
n = document.layers?1:0
le espressioni vanno lette così: Explorer sa interpretare il comando document.all, Netscape sa interpretare document.layers e non viceversa per cui se il browser interpreta il comando allora sarà la variabile ie oppure n uguale ad 1.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |