Javascript if оператор – будущие возможности JavaScript, которые вам понравятся / RUVDS.com corporate blog / Habr

Содержание

Условные операторы 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 значительно экономит время выполнения, так как весь код блока оператора 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 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: Операторы сравнения

Описание, примеры

Операндами операторов сравнения могут быть численные и строковые значения. Строки сравниваются, исходя из стандартного лексикографического порядка при использовании Unicode.

Яваскрипт допускает как строгое сравнение, так и сравнение с приведением типов. Для строгого сравнения оба операнда должны иметь одинаковый тип и:

  • Две строки строго равны, если состоят из одинаковой последовательности символов
  • Два числа строго равны, если равны в обычном смысле слова. +0 строго равен -0.
  • NaN строго не равно ничему, включая NaN
  • Два булевых операнда строго равны, если они оба true или false
  • Два операнда-объекта строго равны, если являются ссылками на один и тот же общий объект
  • Null и Undefined равны ==, но не строго равны ===

Следующая таблица описывает операторы сравнения:

Оператор Описание Примеры, возвращающие true при var1=3, var2=4
Равно (==) Если два операнда не одного типа, javascript преобразовывает типы и сравнивает строго. Если какой-либо операнд - число или булево значение, то операнды преобразуются в числа; если какой-либо операнд строка - второй преобразуются в строку

3 == var1
"3" == var1
3 == '3'

Не равно (!=) Возвращает true, если операнды не равны. Если операнды имеют разный тип, javascript преобразовывает.

var1 != 4
var1 != "5"

Строго равно (===) Возвращает true, если операнды строго равны (см. выше), без преобразования типов.

3 === var1

Строго не равно (!==) Возвращает true, если операнды не являются строго равными (см. выше) или имеют разные типы.

var2 !== 3
3 !== '3'

Больше (>) Возвращает true, если левый операнд больше правого.

var2 > var1

Больше или равно (>=) Возвращает true, если левый операнд больше правого или равен ему.

var2 >= var1
var1 >= 3

Меньше (<) Возвращает true, если левый операнд меньше правого.

var1 < var2

Меньше или равно (<=) Возвращает

Справочник 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

Сокращенные вычисления

Так как логические выражения вычисляются слева направо, они проверяются на возможность "сокращенных вычислений" по следующим правилам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *