Un indovinello con "if"
importanza: 5
Quali di questi alert
verranno eseguiti?
Quale sarà il risultato delle espressioni all’interno dei vari if(...)
?
if (-1 || 0) alert( 'first' );
if (-1 && 0) alert( 'second' );
if (null || -1 && 1) alert( 'third' );
La risposta: il primo e il terzo verranno eseguiti.
I dettagli:
// Viene eseguito
// Il risultato di -1 || 0 = -1 è vero
if (-1 || 0) alert( 'first' );
// Non viene eseguito
// -1 && 0 = 0, falso
if (-1 && 0) alert( 'second' );
// Eseguito
// L'operatore && ha la precedenza su ||,
// quindi -1 && 1 vengono eseguiti per primi; la catena dentro `if` diventa:
// null || -1 && 1 -> null || 1 -> 1
if (null || -1 && 1) alert( 'third' );