// Он и возвращается, а второй аргумент игнорируется
alert(null && 5); // null
alert(0 && "не важно"); // 0
Важность: 3
Что выведет код ниже?
alert( alert(1) && alert(2) );
Решение
[Открыть задачу в новом окне]
Приоритет оператора И&&больше, чем ИЛИ||, т.е. он выполняется раньше.
Поэтому в следующем коде сначала будет вычислено правое И: 1 && 0 = 0, а уже потом — ИЛИ.
alert(5 || 1 && 0); // 5
Не используйте && вместо if
Оператор && в простых случаев можно использовать вместо if, например:
var x = 1;
(x > 0) && alert('Больше');
Действие в правой части && выполнится только в том случае, если до него дойдут вычисления. То есть, если в левой части будет true.
Получился аналог:
var x = 1;
if (x > 0) {
alert('Больше');
}
Однако, как правило, if лучше читается и воспринимается. Он более очевиден, поэтому лучше использовать его. Это, впрочем, относится и к другим неочевидным применениям возможностей языка.
! (НЕ)
Оператор НЕ — самый простой. Он получает один аргумент. Синтаксис:
var result = !value;
Действия !:
Сначала приводит аргумент к логическому типу true/false.
Затем возвращает противоположное значение.
Например:
alert( !true ) // false
alert( !0 ) // true
В частности, двойное НЕ используются для преобразования значений к логическому типу:
alert( !!"строка" ) // true
alert( !!null ) // false
Важность: 3
Напишите условие if для проверки того факта, что переменная age находится между 14 и 90 включительно.
«Включительно» означает, что концы промежутка включены, то есть age может быть равна 14 или 90.
Решение
[Открыть задачу в новом окне]
Важность: 3
Напишите условие if для проверки того факта, что age НЕ находится между 14 и 90 включительно.
Сделайте два варианта условия: первый с использованием оператора НЕ !, второй - без этого оператора.
Решение
[Открыть задачу в новом окне]
Важность: 5
Какие из этих if верны, т.е. выполнятся? Какие значения будут результатами выражений в условиях if?