Условные операторы If и Switch
Очень часто нужно, чтобы в зависимости от некоторых условий выполнялись различные действия.
Реализовать все это позволяют условные операторы.
Условные операторы используются для выполнения определенных действий в зависимости от заданных условий.
В JavaScript имеются следующие условные операторы:
- Оператор if используется для определения блока кода, который будет выполняться, если заданное условие соблюдается (возвращает true)
- Оператор else используется для определения блока кода, который будет выполняться, если то же условие не соблюдается (возвращает false)
- Оператор else if используется для определения нового условия, если первое условие не соблюдается (возвращает false)
- Оператор switch определяет несколько альтернативных блоков кода
Оператор if
Оператор if используется для определения блока JavaScript кода, который будет выполняться, если заданное условие соблюдается (возвращает true).
Синтаксис:
if (условие) {
блок кода, выполняемый если условие возвращает true
}
Внимание! Ключевое слово if пишется в нижнем регистре. Использование больших букв (If или IF) приведет к ошибке JavaScript.
Сформируем строку приветствия «Добрый день», если время меньше 18:00:
if (hour < 18) {
greeting = "Добрый день";
}
Оператор else
Оператор else является частью и продолжением оператора if и используется для определения блока JavaScript кода, который будет выполняться, если заданное условие не соблюдается (возвращает false).
Синтаксис:
if (условие) {
блок кода, выполняемый если условие возвращает true
} else {
блок кода, выполняемый если условие возвращает false
}
Если время меньше 18:00, сформируем строку приветствия «Добрый день», в обратном случае сформируем строку приветствия «Добрый вечер»:
if (hour < 18) {
greeting = "Добрый день";
} else {
greeting = "Добрый вечер";
}
Оператор else if
Оператор else if является частью и продолжением оператора if и используется для определения нового условия, если первое условие не соблюдается (возвращает false).
Синтаксис:
if (условие1) {
блок кода, выполняемый если условие1 возвращает true
} else if (условие2) {
блок кода, выполняемый если условие1 возвращает false, а условие2 true
} else {
блок кода, выполняемый если условие1 и условие2 возвращают false
}
Если время меньше 10:00, сформируем строку приветствия «Доброе утро», если нет, но при это меньше 20:00, сформируем строку приветствия «Добрый день», в обратном случае сформируем строку приветствия «Добрый вечер»:
if (time < 10) {
greeting = "Доброе утро";
} else if (time
Оператор switch
Оператор switch используется для выполнения различных действий в зависимости от различных условий.
Оператор switch используется для сравнения одного значения с множеством других и выбора соответствующего блока кода для выполнения.
Синтаксис:
switch(выражение) {
case n:
блок кода
break;
case n1:
блок кода
break;
default:
блок кода
}
Вот как это работает:
- Сначала вычисляется выражение в операторе switch.
- Затем его значение сравнивается со значениями каждого оператора case.
- Если найдено совпадение, то выполняется соответствующий блок кода.
Пример:
Метод getDay() объекта Date возвращает номер дня недели в диапазоне от 0 до 6. Воскресенье=0, Понедельник=1, Вторник=2 и т. д. Мы используем номер дня недели, чтобы определить его имя:
switch (new Date().getDay()) {
case 0:
day = "Воскресенье";
break;
case 1:
day = "Понедельник";
break;
case 2:
day = "Вторник";
break;
case 3:
day = "Среда";
break;
case 4:
day = "Четверг";
break;
case 5:
day = "Пятница";
break;
case 6:
day = "Суббота";
}
Ключевое слово break
Когда совпадение найдено, и работа сделана, приходит время прекратить проверку, так как в ней больше нет необходимости. Для этого и существует ключевое слово break.
Когда интерпретатор JavaScript достигает ключевое слово break, он прерывает выполнение блока оператора switch.
Ключевое слово break
В последнем блоке case использовать ключевое слова break не нужно. Этот блок прекратит работу оператора switch в любом случае.
Ключевое слово default
Ключевое слово default определяет блок кода, который выполняется в том случае, если ни одно из условий не совпало.
Пример:
Метод getDay() объекта Date возвращает номер дня недели в диапазоне от 0 до 6. Если сегодня ни Воскресенье (0), ни Суббота (6), то возвращается сообщение по умолчанию:
switch (new Date().getDay()) {
case 6:
text = "Сегодня суббота";
break;
case 0:
text = "Сегодня воскресенье";
break;
default:
text = "Будем ждать выходных";
}
Блок выбора по условию default не обязательно должен быть последним в блоке оператора switch:
switch (new Date().getDay()) {
default:
text = "Будем ждать выходных";
break;
case 6:
text = "Сегодня суббота";
break;
case 0:
text = "Сегодня воскресенье";
}
Если блок выбора по условию default не последний в операторе switch, то его нужно заканчивать ключевым словом break.
Общие блоки кода
Иногда возникает необходимость по разным условиям использовать один и тот же код.
В следующем примере условие 4 и 5 определяют общий блок кода, а 0 и 6 определяют другой общий блок кода:
switch (new Date().getDay()) {
case 4:
case 5:
text = "Скоро выходные";
break;
case 0:
case 6:
text = "Сегодня выходной";
break;
default:
text = "Будем ждать выходных";
}
JavaScript Операторы
Пример
Присвоить значения переменных и сложить их вместе:
var x = 5; // присвоить значение 5 к x
var y = 2; // присвоить значение 2 к y
var z = x + y; // присвоить значение 7 к z (x + y)
Оператор присваения =
, присваивает значение к переменной.
Оператор сложения +
прибавляет числа:
Оператор умножения *
умножает числа.
JavaScript арифметические операторы
Арифметические операторы используются для выполнения арифметических действий над числами:
Оператор | Описание |
---|---|
+ | Сложение |
— | Вычитание |
* | Умножение |
/ | Деление |
% | Модуль |
++ | Увеличение |
— | Уменьшение |
Арифметические операторы полностью описаны в главе JS Арифметика.
JavaScript оператор присваения
Операторы присваения, присваивают значения к переменным JavaScript.
Оператор | Пример | То же самое |
---|---|---|
= | x = y | x = y |
+= | x += y | x = x + y |
-= | x -= y | x = x — y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
Оператор присваение сложения +=
добавляет значение в переменную.
JavaScript строковые операторы
Оператор сложения +
, также может использоваться для добавления (объединения) строк.
Пример
txt1 = «Андрей»;
txt2 = «Щипунов»;
txt3 = txt1 + » » + txt2;
Результат txt3
будет:
Андрей Щипунов
Редактор кода »Оператор присваения сложения +=
, также может использоваться для добавления (объединения) строк:
Пример
txt1 = «Сегодня очень»;
txt1 += «чудесный день»;
Результат txt1
будет:
Сегодня очень чудесный день
Редактор кода »При использовании в строках оператор сложения +
называется оператором объединения.
JavaScript сложение строк и чисел
Сложение двух чисел будет сумма, но сложение числа и строки будет строка:
Пример
x = 5 + 5;
y = «5» + 5;
z = «Привет» + 5;
Результат из x
, y
и z
будет:
10
55
Привет5
Если добавить число и строку, результат будет строка!
JavaScript операторы сравнения
Оператор | Описание |
---|---|
== | равно |
=== | равное значение и равный тип |
!= | не равно |
!== | не равное значение или не равный тип |
> | знак больше |
< | знак меньше |
>= | знак больше или равно |
<= | знак меньше или равно |
? | тернарный оператор |
Операторы сравнения полностью описаны в разделе главы JS Сравнения.
JavaScript операторы логические
Оператор | Описание |
---|---|
&& | логический И |
|| | логический ИЛИ |
! | логический НЕ |
JavaScript операторы типовые
Оператор | Описание |
---|---|
typeof | Возвращает тип переменной |
instanceof | Возвращает true, если объект является экземпляром типа объект |
JavaScript операторы битовые
Операторы битов работают на 32-битных числах.
Любой числовой операнд в операции преобразуется в 32-разрядное число. Результат преобразуется обратно в число JavaScript.
Оператор | Описание | Пример | То же самое | Результат | Десятичное число |
---|---|---|---|---|---|
& | И | 5 & 1 | 0101 & 0001 | 0001 | 1 |
| | ИЛИ | 5 | 1 | 0101 | 0001 | 0101 | 5 |
~ | НЕ | ~ 5 | ~0101 | 1010 | 10 |
^ | исключающее ИЛИ | 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
<< | Нулевое заполнение левый shift | 5 << 1 | 0101 << 1 | 1010 | 10 |
>> | Подпись справа shift | 5 >> 1 | 0101 >> 1 | 0010 | 2 |
>>> | Нулевая заполнение правый shift | 5 >>> 1 | 0101 >>> 1 | 0010 | 2 |
В приведенных выше примерах используются 4 бита без знака. Но JavaScript использует 32-разрядные числа со знаком.
Из-за этого в JavaScript, ~ 5 не вернется 10. Вернется -6.
~00000000000000000000000000000101 возвратиться 11111111111111111111111111111010
Битовые операторы полностью описаны в главе JS Битовые.
|
Справочник javascript: Логические операторы
Логические операторы, как правило, используются с булевыми значениями и возвращают булево значение.
Однако, в javascript операторы && и || возвращают не булево значение, а один из операндов, определивший значение выражения. Конечно, результат в таком случае может быть и не булевым.
Логические операторы описаны следующей таблицей:
Оператор | Использование | Описание |
---|---|---|
Логическое И (&& ) | expr1 && expr2 | Возвращает expr1 , если оно может быть преобразовано к false ; в ином случае возвращает expr2 . Так что, при вызове с булевыми значениями, && вернет true только если оба операнда истинны, иначе false . |
Логическое ИЛИ (|| ) | expr1 || expr2 | Возвращает expr1 , если оно может быть преобразовано к true ; в ином случае возвращает expr2 . Так что, при вызове с булевыми значениями, || вернет true только в том случае, когда хотя бы один операнд истинен, иначе вернет false . |
Логическое НЕ (! ) | !expr | Возвращает false , если операнд может быть преобразован к true , в ином случае возвращает true . |
К false
преобразуются, например: null
, 0
, пустая строка ("")
и undefined.
Хотя операторы && и || и могут быть использованы для возвращения небулевых значений, они все же логические, так как возвращаемые значения могут быть приведены к булевому типу.
Оператор ! также используется для быстрого преобразования выражения к булевому значению:
!!"string" = true !!null = false
Сокращенные вычисления
Так как логические выражения вычисляются слева направо, они проверяются на возможность «сокращенных вычислений» по следующим правилам: