Basics
Есть довольно много способов, с помощью которых мы можем выразить условные конструкции (т.е. решения) в наших программах. Самый распространенный из них — это оператор if
. По сути, вы говорите «Если(if) это условие истинно, сделать следующее...». Например:
Оператор if
требует выражение между скобками( )
, которое может быть интерпретировано либо как истина
(true
), либо ложь
(false
). В этой программе мы написали выражение amount < bank_balance
, которое, конечно же, будет вычислено как true
или false
в зависимости от количества в переменной bank_balance
.
Вы даже можете предоставить альтернативу, если условие не будет истинным, которая называется оператором
else
. Пример:
Здесь: если amount < bank_balance
истинно, мы выведем"Я возьму этот аксессуар!"
и добавим 9.99
в нашу переменную amount
. В противном случае, оператор else
говорит, что мы вежливо ответим"Нет, спасибо."
и оставим переменную amount
без изменений.
Оператор if
ожидает логическое значение
, но если вы передадите что-либо отличное от логического значения
, произойдет приведение.
JavaScript определяет список особых значений, которые считаются «ложными», так как при приведении к логическому значению
они станут значением false
, такие значения включают в себя 0
и""
. Любое другое значение, не входящее в список «ложных», автоматически считается «истинным», когда приводится к логическому значению
, оно становится равным true
.
Инструкция switch
Условные конструкции существуют и в других формах, отличных от if
. Например, оператор switch
может использоваться как сокращение для последовательности операторов if..else.
Выражения if...else
отлично справляются с добавлением условного кода, однако они не лишены недостатков. Они хорошо подходят для ситуации, когда имеется всего пара вариантов развития событий, каждый из которых имеет блок с приемлемым количеством кода, а также в случаях, когда условие является довольно сложным и включает несколько логических операторов. Если же нам требуется всего лишь задать переменную для определенно выбранного значения или напечатать конкретную фразу при определенном условии, изученный нами синтаксис может оказаться довольно громоздким, особенно если имеется большое количество вариантов выбора.
В этом случае нам помогут инструкции switch
– они принимают одно единственное выражение или значение, а затем просматривают ряд вариантов, пока не найдут вариант, соответствующий этому значению, после чего выполняют код, назначенный этому варианту. Приведем общую схему такой инструкции:
Ключевое слово
switch
, за которым следует пара круглых скобок.В скобках приводится выражение или значение.
Ключевое слово
case
, за которым следует вариант выбора (именно он проверяется на соответствие выражению или значению) и двоеточие.Код, который будет выполняться, если вариант совпадает с выражением.
Инструкция
break
, за которой следует точка с запятой. Если вариант совпал с выражением или значением, браузер закончит выполнять блок кода, дойдя до инструкцииbreak
, и перейдет к выполнению кода, расположенного ниже инструкции switch.Вариантов выбора (пункты 3–5) может быть сколь угодно.
Ключевое слово
default
используется точно так же, как и любой другой вариант выбора (пункты 3–5), за тем исключением, что послеdefault
нет других вариантов выбора, поэтому инструкцияbreak
не требуется, никакого кода дальше нет. Это вариант выбора по умолчанию, выбираемый, если ни один из других вариантов не совпал с выражением.
Тернарный оператор
Тернарный или условный оператор имеет простой синтаксис: он проверяет условие и возвращает одно значение или выражение, если условие является true
, и другое значение/выражение, если условие являетсяfalse
. Часто это очень удобная альтернатива блокуif...else
, позволяющая затрачивать меньшие усилия на написание кода, когда имеется всего лишь два варианта, выбираемых на основе условияtrue
/false
. Общая схема оператора:
Last updated