Основы JavaScript
Теория: Условные конструкции
Условные конструкции позволяют изменить поведение программы в зависимости от проверяемых условий. Благодаря им у нас появляется возможность писать сложные программы, ведущие себя по-разному в зависимости от ситуации.
if
Напишем, для примера, функцию, которая определяет тип переданного предложения. Для начала она будет отличать обычные предложения от вопросительных.
if — конструкция языка, управляющая порядком выполнения инструкций. В скобках ей передается выражение-предикат, а затем описывается блок кода в фигурных скобках. Этот блок кода будет выполнен, только если предикат — истина.
Если предикат — ложь, то блок кода в фигурных скобках пропускается, и функция продолжает свое выполнение дальше. В нашем случае следующая строчка кода — return 'general'; — заставит функцию вернуть строку и завершиться. Как видите, return может находиться где угодно в функции. В том числе внутри блока кода с условием.
Если в фигурных скобках после if содержится только одна строчка кода, то фигурные скобки можно не писать и сделать так:
Советуем не делать так и всегда писать фигурные скобки. В таком случае явно видно, где начинается и заканчивается тело условия. Код становится более четким и понятным.
else
Напишем функцию getTypeOfSentence(), которая анализирует текст и возвращает описание его тона: для обычных предложений – General sentence, для вопросительных – Question sentence.
Реализация функции:
Мы добавили ключевое слово else и новый блок с фигурными скобками. Этот блок выполнится, только если условие в if — ложь.
Существует два способа оформления конструкции if-else. С помощью отрицания можно изменить порядок блоков:
Какой способ предпочтительнее? Человеческому мозгу проще мыслить прямолинейно, а не через отрицание. Старайтесь выбирать проверку, которая не содержит отрицаний, и подстраивайте содержимое блоков под нее.
Конструкция else if
Функция getTypeOfSentence() из предыдущего примера различает только вопросительные и обычные предложения. Давайте попробуем добавить поддержку восклицательных предложений:
Мы добавили еще одну проверку ("exclamation" переводится «восклицание»). Технически функция работает, но с точки зрения семантики есть проблемы:
- Проверка на наличие вопросительного знака происходит в любом случае, даже если уже был обнаружен восклицательный знак.
- Ветка
elseописана именно для первого условия, но не для второго.
Правильнее будет воспользоваться еще одной возможностью условной конструкции:
Теперь все условия выстроены в единую конструкцию. else if — это «если не выполнено предыдущее условие, но выполнено текущее». Получается такая схема:
- если последний символ это
?, то'question' - иначе, если последний символ это
!, то'exclamation' - иначе
'normal'
Выполнится только один из блоков кода, относящихся ко всей конструкции if.






