Часто в программировании встречаются случаи, когда нужно выполнить действие по какому-то условию. Тут на помощь приходят операторы ''if'' и ''switch''.
====== Немного про условия ======
Используются не только в ветвлениях, но и в циклах, а также можно записать в переменную.
===== Типы условий =====
Их всего два:
* Ложными считаются те, что имеют значения:
* ''false'',
* Число ''0'',
* Пустая строка ''""'',
* ''null'',
* ''NaN'',
* ''undefined'';
* Правдивые (истинные) - значения этих условий после вычисления равны:
* ''true'',
* число, не равное нулю,
* не пустая строка и др.
===== Сравнение значений =====
Очень хорошо, что в JavaScript можно сравнивать значение переменных (или просто каких-то значений, что бессмысленно), ведь это очень часто пригождается на практике. Тут знаки такие же, как и в математике (не считая некоторых):
* ''<'' - меньше;
* ''>'' - больше;
* ''<='' - меньше или равно;
* ''>='' - больше или равно;
* ''=='' - простое сравнение. Сравнивает значения. //Такие выражения, как// ''1 == "1"'' будут "правдивыми", так как тут происходит преобразование типов. **Следует быть внимательным к таким моментам, бывает сложно найти ошибку в коде при таком сравнении**;
* ''==='' - строгое сравнение. Сравнивается как значение, так и тип. То есть ''null'' не будет равен ''undefined'' (разный тип данных), ''0'' не будет равен ''false'' и так далее.
===== Логические операторы для условий =====
* ''!'' - логическое НЕ, которая инвертирует (меняет на противоположное) значение.
console.log(!false); // Выведет true
* ''||'' - логическое ИЛИ, которое выведет истину, если хотя бы одно из значений правдивое.
console.log(false || false); // Будет ложным, оба значения false
console.log(false || true); // Будет истина, есть одно true
console.log(true || false); // Будет истина, есть одно true
console.log(true || true); // Будет истина
* ''&&'' - логическое И, выведет истину в случае, если оба значения истинные:
console.log(false && false); // Будет ложным, оба значения false
console.log(false && true); // Будет ложным, есть одно false
console.log(true && false); // Будет ложным, есть одно false
console.log(true && true); // Будет истина
====== Операторы if и else ======
Вычисляет условие внутри круглых скобок и, если значение условия является "правдивым", выполняет действия внутри блока (фигурных скобок):
if (условие) // Какое-то однострочное действие
// или
if (условие) {
// Какие-то действия, которые выполнятся, если условие окажется правдивым
}
> Использование фигурных скобок не обязательно, но желательно. Повышает читаемость кода и вашу самооценку :-)
Бывают случаи, когда условие принимет и "ложные" значения, и нужно выполнить действие:
if (условие) {
// Тут код выполнится, если условие "правдивое"
} else {
// А здесь код выполнится, если условие оказалось "ложным"
}
Также можно добавить еще и промежуточные условия, которые будут выполнятся, если предыдущее оказалось "ложным":
if (условие1) {
// Тут код выполнится, если условие1 "истинное"
} else if (условие2) {
// Вот тут код выполнится, если условие1 - "ложное", а условие2 - "правдивое"
} else {
// Ну а тут, если все условия выше "ложные"
}
==== Оператор switch ====
Очень похож на ''if'', принимает переменную и сравнивает её значение со значением после оператора ''case''. Если ни одно из значений после ''case'' не равно значению переменной, то выполнится действие после оператора ''default''.
> Внимание: что если не поставить ''break'', то выполнятся все действия ниже, до следующего ''break'' в блоке или до конца блока ''switch''
switch переменная {
case значение1:
...
break;
case значение2:
...
break;
default:
...
break;
}