Книга: JavaScript. Подробное руководство, 6-е издание
5.4.1. Инструкция if
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
. Взгляните на следующие строки:
i = j = 1;
k = 2;
if (і == j)
if (j == k)
console.log("i равно k");
else
console.log(”i не равно j”); // НЕПРАВИЛЬНО!!
В этом примере внутренняя инструкция if
является единственной инструкцией, вложенной во внешнюю инструкцию if
. К сожалению, неясно (если исключить подсказку, которую дают отступы), к какой инструкции if
относится блок else
. А отступы в этом примере выставлены неправильно, потому что в действительности интерпретатор JavaScript интерпретирует предыдущий пример так:
if (і == j) {
if (j == k)
console. log('i равно k");
else
console.log('i не равно j"); // Вот как!
}
Согласно правилам JavaScript (и большинства других языков программирования), конструкция else
является частью ближайшей к ней инструкции if
. Чтобы сделать этот пример менее двусмысленным и более легким для чтения, понимания, сопровождения и отладки, надо поставить фигурные скобки:
if (І == j) {
if (j == k) {
console.log('i равно k");
}
}
else
{ // Вот какая разница возникает из-за добавления фигурных скобок!
console.log('i не равно j");
}
Хотя этот стиль и не используется в данной книге, тем не менее многие программисты заключают тела инструкций if
и else
(а также других составных инструкций, таких как циклы while
) в фигурные скобки, даже когда тело состоит только из одной инструкции. Последовательное применение этого правила поможет избежать неприятностей, подобных только что описанной.
- Инструкция IIF
- Инструкция INSERT INTO ... FROM ... UNION ...
- Что дает грамотная должностная инструкция
- При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Пам...
- Инструкция по обработке
- Инструкция утверждения
- Приложение 1. Как создать вики-страницу: пошаговая инструкция
- Приложение III Инструкция «Прием входящего звонка»
- E-mail маркетинг для интернет?магазина. Инструкция по внедрению
- Глава 5 Должностная инструкция
- SMM-специалист. инструкция по самоэксплуатации
- Инструкция по сборке