JavaScript имеет Си-подобные управляющие структуры. Условные операторы: if и else, из которых можно делать цепочки:
var name = "Котенок";
if (name == "Щенок") {
name += "!";
} else if (name == "Котенок") {
name += "!!";
} else {
name = "!" + name;
}
name == Котенок!!"
В JavaScript есть циклы while и do-while. Первый можно использовать для бесконечного цикла; второй в том случае если вы хотите, чтобы тело цикла выполнилось как минимум один раз:
while (true) {
// Бесконечный цикл!
}
do {
var input = get_input();
}
while (inputIsNotValid(input))
В JavaScript for такой же, как в C, C# и Java:
for (var i = 0; i < 5; i++) {
// будет выполнен 5 раз
}
Операторы && и || "закорачиваются", т.е. будет ли выполнен или нет второй операнд, зависит от значения первого. Это можно использовать для проверки значения объекта на null перед тем как пытаться прочитать его свойства:
var name = o && o.getName();
Или для установки значений по умолчанию:
var name = otherName || "default";
В JavaScript есть также тернарный оператор:
var allowed = (age > 18) ? "Да" : "Нет";
Конструкция switch может быть использована для разветвления на основании числового или строчного значения:
switch (action) {
case 'Рисовать':
drawit();
break;
case 'Есть':
eatit();
break;
default:
donothing();
}
Если забыть написать break, то выполнение "провалится" в следующий case:
switch (a) {
case 1: // проваливаемся
case 2:
eatit();
break;
default:
donothing();
}
Выражение default необязательно, его можно опустить.
Можно использовать "выражения" как в switch, так и в case ; сравнение будет проводиться с использованием оператора тройного равенства ===: