Вопрос об "if"
важность: 5
Какие из перечисленных ниже alert
выполнятся?
Какие конкретно значения будут результатами выражений в условиях if(...)
?
if (-1 || 0) alert( 'first' );
if (-1 && 0) alert( 'second' );
if (null || -1 && 1) alert( 'third' );
Ответ: первое и третье выполнятся.
Подробности:
// Выполнится.
// Результат -1 || 0 = -1, в логическом контексте true
if (-1 || 0) alert( 'first' );
// Не выполнится
// -1 && 0 = 0, в логическом контексте false
if (-1 && 0) alert( 'second' );
// Выполнится
// оператор && имеет больший приоритет, чем ||
// так что -1 && 1 выполнится раньше
// вычисления: null || -1 && 1 -> null || 1 -> 1
if (null || -1 && 1) alert( 'third' );