Содержание
Часто в программировании встречаются случаи, когда нужно выполнить действие по какому-то условию. Тут на помощь приходят операторы 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; }