Подобно инструкции var, инструкции объявления функций создают переменные, которые невозможно удалить. Однако эти переменные доступны не только для чтения - им можно присвоить другие значения.
5.4. Условные инструкции
Условные инструкции позволяют пропустить или выполнить другие инструкции в зависимости от значения указанного выражения. Эти инструкции являются точками принятия решений в программе, и иногда их также называют инструкциями «ветвления». Если представить, что программа - это дорога, а интерпретатор JavaScript - путешественник, идущий по ней, то условные инструкции можно представить как перекрестки, где программный код разветвляется на две или более дорог, и на таких перекрестках интерпретатор должен выбирать, по какой дороге двигаться дальше.
В подразделах ниже описывается основная условная инструкция языка JavaScript - инструкция if/else, а также более сложная инструкция switch, позволяющая создавать множество ответвлений.
5.4.1. Инструкция if
Инструкция if - это базовая управляющая инструкция, позволяющая интерпретатору JavaScript принимать решения или, точнее, выполнять инструкции в зависимости от условий. Инструкция имеет две формы. Первая:
if (выражение) инструкция
В этой форме сначала вычисляется выражение. Если полученный результат является истинным, то инструкция выполняется. Если выражение возвращает ложное значение, то инструкция не выполняется. (Определения истинных и ложных значений приводятся в разделе 3.3.) Например:
if (username == null) // Если переменная username равна null или undefined,
username = "John Doe"; // определить ее
Аналогично:
// Если переменная username равна null, undefined, 0, "" или NaN,
// присвоить ей новое значение,
if (!username) username = "John Doe";
Обратите внимание, что скобки вокруг условного выражения являются обязательной частью синтаксиса инструкции if.
Синтаксис языка JavaScript позволяет вставить только одну инструкцию после инструкции if и выражения в круглых скобках, однако одиночную инструкцию всегда можно заменить блоком инструкций. Поэтому инструкция if может выглядеть так:
if (!address) {
address = "";
message = "Пожалуйста, укажите почтовый адрес.";
}
Вторая форма инструкции if вводит конструкцию else, выполняемую в тех случаях, когда выражение возвращает ложное значение. Ее синтаксис:
if (выражение)
инструкция 1
else
инструкция2
Эта форма инструкции выполняет инструкцию1, если выражение возвращает истинное значение, и инструкцию2, если выражение возвращает ложное значение. Например:
if (п == 1)
console.log("Получено 1 новое сообщение.");
else
console.log("Получено " + n + " новых сообщений.");
При наличии вложенных инструкций if с блоками else требуется некоторая осторожность - необходимо гарантировать, что else относится к соответствующей ей инструкции if. Взгляните на следующие строки: