Qualche volta abbiamo bisogno di eseguire certe azioni solo nel caso valgano determinate condizioni.
Per questo c’è l’istruzione if e l’operatore condizionale di valutazione a cui ci riferiremo, per semplicità, con “l’operatore punto di domanda” ?.
L’istruzione “if”
L’istruzione if(...) valuta una condizione (racchiusa nelle parentesi); se il risultato è true, esegue il codice che segue if.
Ad esempio:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');
if (year == 2015) alert( 'You are right!' );
Nell’esempio sopra, la condizione è un semplice controllo di uguaglianza: year == 2015, ma potrebbe essere qualcosa di molto più complesso.
Se dobbiamo eseguire più di un’istruzione, queste vanno raggruppate tramite parentesi graffe:
if (year == 2015) {
alert( "That's correct!" );
alert( "You're so smart!" );
}
E’ consigliabile raggruppare sempre il codice all’interno delle parentesi graffe {}, quando si usa un if, anche se contiene una sola istruzione. La leggibilità ne guadagna.
Conversione booleana
L’istruzione if (…) valuta la condizione tra le parentesi e converte il risultato al tipo booleano.
Ricordiamo le regole di conversione viste nel capitolo Conversione di tipi:
- Il numero
0, una stringa vuota"",null,undefinede