A volte, dobbiamo eseguire azioni diverse in base a condizioni diverse.
Per farlo, possiamo usare l’istruzione if
e l’operatore condizionale ?
, che è anche chiamato operatore “punto interrogativo”.
L’istruzione “if”
L’istruzioneif(...)
valuta una condizione tra parentesi e, se il risultato ètrue
, esegue un blocco di codice.,
Per esempio:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
Nell’esempio di cui sopra, la condizione è un semplice controllo di uguaglianza (year == 2015
), ma può essere molto più complessa.,
Se si desidera eseguire più di una dichiarazione, dobbiamo racchiudere il nostro blocco di codice all’interno delle parentesi graffe:
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
Si consiglia di avvolgere il blocco di codice con parentesi graffe {}
ogni volta che si utilizza un if
istruzione, anche se c’è solo una istruzione da eseguire. In questo modo migliora la leggibilità.
Conversione booleana
L’istruzioneif (…)
valuta l’espressione tra parentesi e converte il risultato in un booleano.,
ricordiamo le regole di conversione del capitolo Conversioni di Tipo:
- Un numero
0
, una stringa vuota""
null
undefined
eNaN
diventare tuttifalse
. Per questo motivo sono chiamati valori “falsi”. - Altri valori diventano
true
, quindi sono chiamati”truthy”.,
Così, il codice in questa condizione non sarebbe mai eseguire:
if (0) { // 0 is falsy ...}
…e all’interno di questa condizione – lo sarà sempre:
if (1) { // 1 is truthy ...}
Si può anche passare un pre-valutati valore boolean if
in questo modo:
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
“else” clausola
if
dichiarazione può contenere un’opzione “altro” blocco. Viene eseguito quando la condizione è falsa.,
Ad esempio:
Diverse condizioni: “else if”
A volte, vorremmo testare diverse varianti di una condizione. La clausolaelse if
ci consente di farlo.
Ad esempio:
Nel codice sopra, JavaScript controlla primayear < 2015
. Se questo è falso, passa alla condizione successiva year > 2015
. Se anche questo è falso, mostra l’ultimoalert
.
Ci possono essere più blocchi else if
. Il else
finale è facoltativo.
Operatore condizionale’?,’
A volte, abbiamo bisogno di assegnare una variabile a seconda di una condizione.
Ad esempio:
Il cosiddetto operatore “condizionale” o “punto interrogativo” ci consente di farlo in un modo più breve e semplice.
L’operatore è rappresentato da un punto interrogativo?
. A volte è chiamato “ternario”, perché l’operatore ha tre operandi. In realtà è l’unico e unico operatore in JavaScript che ha così tanti.,
La sintassi è:
let result = condition ? value1 : value2;
condition
viene valutata: se è truthy poi value1
viene restituito, altrimenti – value2
.
Ad esempio:
let accessAllowed = (age > 18) ? true : false;
Tecnicamente, possiamo omettere le parentesi attorno a age > 18
. L’operatore del punto interrogativo ha una precedenza bassa, quindi viene eseguito dopo il confronto>
.,
Questo esempio farà la stessa cosa del precedente:
Ma le parentesi rendono il codice più leggibile, quindi raccomandiamo di usarli.
Nell’esempio di cui sopra, si può evitare di usare il punto interrogativo operatore, perché il confronto ritorna true/false
:
// the samelet accessAllowed = age > 18;
di Più ‘?’
Una sequenza di operatori di punti interrogativi?
può restituire un valore che dipende da più di una condizione.,
Ad esempio:
let age = prompt('age?', 18);let message = (age < 3) ? 'Hi, baby!' : (age < 18) ? 'Hello!' : (age < 100) ? 'Greetings!' : 'What an unusual age!';alert( message );
All’inizio potrebbe essere difficile capire cosa sta succedendo. Ma dopo uno sguardo più attento, possiamo vedere che è solo una normale sequenza di test:
Ecco come appare usandoif..else
:
if (age < 3) { message = 'Hi, baby!';} else if (age < 18) { message = 'Hello!';} else if (age < 100) { message = 'Greetings!';} else { message = 'What an unusual age!';}
Uso non tradizionale di ‘?,’
a Volte il punto di domanda ?
è usato come una sostituzione per il if
:
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
a Seconda della condizione company == 'Netscape'
o la prima o la seconda espressione dopo il ?
viene eseguito e mostra un messaggio di avviso.
Qui non assegniamo un risultato a una variabile. Invece, eseguiamo codice diverso a seconda della condizione.
Non è consigliabile utilizzare l’operatore del punto interrogativo in questo modo.,
La notazione è più breve dell’equivalente if
istruzione, che fa appello ad alcuni programmatori. Ma è meno leggibile.
Ecco lo stesso codice usando if
per confronto:
let company = prompt('Which company created JavaScript?', '');if (company == 'Netscape') { alert('Right!');} else { alert('Wrong.');}
La scansione dei nostri occhi il codice verticalmente. I blocchi di codice che si estendono su più righe sono più facili da capire rispetto a un set di istruzioni lungo e orizzontale.,
Lo scopo dell’operatore del punto interrogativo ?
è quello di restituire un valore o un altro a seconda delle sue condizioni. Si prega di utilizzare per esattamente questo. Utilizzare if
quando è necessario eseguire diversi rami di codice.
Leave a Reply