Otázka na „if“
důležitost: 5
Který z těchto alertů se vykoná?
Jaké budou výsledky výrazů uvnitř if(...)?
if (-1 || 0) alert( 'první' );
if (-1 && 0) alert( 'druhý' );
if (null || -1 && 1) alert( 'třetí' );
Odpověď zní: vykoná se první a třetí alert.
Podrobnosti:
// Vykoná se.
// Výsledek -1 || 0 = -1, tedy pravda.
if (-1 || 0) alert( 'první' );
// Nevykoná se.
// -1 && 0 = 0, nepravda.
if (-1 && 0) alert( 'druhý' );
// Vykoná se.
// Operátor && má vyšší prioritu než ||,
// takže -1 && 1 se vykoná jako první, což dává tento řetězec:
// null || -1 && 1 -> null || 1 -> 1
if (null || -1 && 1) alert( 'třetí' );