Условные операторы If и Switch
Очень часто нужно, чтобы в зависимости от некоторых условий выполнялись различные действия.
Реализовать все это позволяют условные операторы.
Условные операторы используются для выполнения определенных действий в зависимости от заданных условий.
В JavaScript имеются следующие условные операторы:
- Оператор if используется для определения блока кода, который будет выполняться, если заданное условие соблюдается (возвращает true)
- Оператор else используется для определения блока кода, который будет выполняться, если то же условие не соблюдается (возвращает false)
- Оператор else if используется для определения нового условия, если первое условие не соблюдается (возвращает false)
- Оператор switch определяет несколько альтернативных блоков кода
Оператор if
Оператор if используется для определения блока JavaScript кода, который будет выполняться, если заданное условие соблюдается (возвращает true).
Синтаксис:
if (условие) {
}
Внимание! Ключевое слово 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 (условие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
Когда совпадение найдено, и работа сделана, приходит время прекратить проверку, так как в ней больше нет необходимости. Для этого и существует ключевое слово
Когда интерпретатор JavaScript достигает ключевое слово break, он прерывает выполнение блока оператора switch.
Ключевое слово break значительно экономит время выполнения, так как весь код блока оператора switch, расположенный после него, игнорируется.
В последнем блоке 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 z = x + y; // присвоить значение 7 к z (x + y) Редактор кода »
Оператор присваения =
, присваивает значение к переменной.
Оператор сложения +
прибавляет числа:
Оператор умножения *
умножает числа.
JavaScript арифметические операторы
Арифметические операторы используются для выполнения арифметических действий над числами:
Оператор | Описание |
---|---|
+ | Сложение |
- | Вычитание |
* | Умножение |
/ | Деление |
% | Модуль |
++ | Увеличение |
-- | Уменьшение |
Арифметические операторы полностью описаны в главе JS Арифметика.
JavaScript оператор присваения
Операторы присваения, присваивают значения к переменным JavaScript.
Оператор | Пример | То же самое |
---|---|---|
= | x = y | x = y |
+= | 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
Сокращенные вычисления
Так как логические выражения вычисляются слева направо, они проверяются на возможность "сокращенных вычислений" по следующим правилам: