Basics

Есть довольно много способов, с помощью которых мы можем выразить условные конструкции (т.е. решения) в наших программах. Самый распространенный из них — это оператор if. По сути, вы говорите «Если(if) это условие истинно, сделать следующее...». Например:

var bank_balance = 302.13;
var amount = 99.99;

if (amount < bank_balance) {
    console.log( "Я хочу купить этот телефон" );
}

Оператор if требует выражение между скобками( ), которое может быть интерпретировано либо как истина(true), либо ложь(false). В этой программе мы написали выражение amount < bank_balance, которое, конечно же, будет вычислено как true или false в зависимости от количества в переменной bank_balance.

Вы даже можете предоставить альтернативу, если условие не будет истинным, которая называется оператором

else. Пример:

const ACCESSORY_PRICE = 9.99;

var bank_balance = 302.13;
var amount = 99.99;

amount = amount * 2;

// может ли мы позволить себе дополнительную покупку?
if ( amount < bank_balance ) {
    console.log( "Я возьму этот аксессуар!" );
    amount = amount + ACCESSORY_PRICE;
}
// иначе:
else {
    console.log( "Нет, спасибо." );
}

Здесь: если amount < bank_balance истинно, мы выведем"Я возьму этот аксессуар!"и добавим 9.99 в нашу переменную amount. В противном случае, оператор else говорит, что мы вежливо ответим"Нет, спасибо."и оставим переменную amount без изменений.

Оператор if ожидает логическое значение, но если вы передадите что-либо отличное от логического значения, произойдет приведение.

JavaScript определяет список особых значений, которые считаются «ложными», так как при приведении к логическому значению они станут значением false, такие значения включают в себя 0и"". Любое другое значение, не входящее в список «ложных», автоматически считается «истинным», когда приводится к логическому значению, оно становится равным true.

Инструкция switch

Условные конструкции существуют и в других формах, отличных от if. Например, оператор switch может использоваться как сокращение для последовательности операторов if..else.

Выражения if...else отлично справляются с добавлением условного кода, однако они не лишены недостатков. Они хорошо подходят для ситуации, когда имеется всего пара вариантов развития событий, каждый из которых имеет блок с приемлемым количеством кода, а также в случаях, когда условие является довольно сложным и включает несколько логических операторов. Если же нам требуется всего лишь задать переменную для определенно выбранного значения или напечатать конкретную фразу при определенном условии, изученный нами синтаксис может оказаться довольно громоздким, особенно если имеется большое количество вариантов выбора.

В этом случае нам помогут инструкции switch – они принимают одно единственное выражение или значение, а затем просматривают ряд вариантов, пока не найдут вариант, соответствующий этому значению, после чего выполняют код, назначенный этому варианту. Приведем общую схему такой инструкции:

switch (выражение) {
  case choice1:
    выполнить этот код
    break;

  case choice2:
    выполнить этот код, а не предыдущий
    break;

  // вариантов может быть любое количество

  default:
    а вообще-то, выполнить только этот код
}

Ключевое слово

  1. switch, за которым следует пара круглых скобок.

  2. В скобках приводится выражение или значение.

  3. Ключевое слово case, за которым следует вариант выбора (именно он проверяется на соответствие выражению или значению) и двоеточие.

  4. Код, который будет выполняться, если вариант совпадает с выражением.

  5. Инструкция break, за которой следует точка с запятой. Если вариант совпал с выражением или значением, браузер закончит выполнять блок кода, дойдя до инструкции break, и перейдет к выполнению кода, расположенного ниже инструкции switch.

  6. Вариантов выбора (пункты 3–5) может быть сколь угодно.

  7. Ключевое слово default используется точно так же, как и любой другой вариант выбора (пункты 3–5), за тем исключением, что после default нет других вариантов выбора, поэтому инструкция break не требуется, никакого кода дальше нет. Это вариант выбора по умолчанию, выбираемый, если ни один из других вариантов не совпал с выражением.

Тернарный оператор

Тернарный или условный оператор имеет простой синтаксис: он проверяет условие и возвращает одно значение или выражение, если условие является true, и другое значение/выражение, если условие являетсяfalse. Часто это очень удобная альтернатива блокуif...else, позволяющая затрачивать меньшие усилия на написание кода, когда имеется всего лишь два варианта, выбираемых на основе условияtrue/false. Общая схема оператора:

( условие) ? выполнить этот код : выполнить этот код вместо первого

var greeting = ( isBirthday ) ? 'С днем рождения, г-н Кузнецов!' : 'Доброе утро, г-н Кузнецов.';

Last updated