Как и многие другие языки программирования, JavaScript также позволяет писать код, который выполняет различные действия на основе результатов логических или сравнительных условий. Это означает, что вы можете создавать условия в форме выражений, которые оцениваются как истинные (true
) или ложные (false
) и на основании этих результатов вы можете выполнять определенные действия.
В JavaScript есть несколько условных операторов, которые вы можете использовать для условной логики:
- Оператор if
- Оператор if … else
- Оператор if … else if …. else
- Оператор switch…case
Оператор if
Оператор if
используется для выполнения блока кода, только если указанное условие имеет значение true
. Это простейший условный оператор JavaScript, который можно записать так:
if(condition) {
// Если условие condition истинно
}
В следующем примере будет выводиться «Хороших выходных!» если текущий день пятница:
var now = new Date();
var dayOfWeek = now.getDay(); // Sunday - Saturday : 0 - 6
if(dayOfWeek == 5) {
alert("Хороших выходных!");
}
Оператор if…else
Вы можете расширить возможности принятия решений в JavaScript, предоставив альтернативный выбор, добавив оператор else
.
Оператор if … else
позволяет вам выполнить один блок кода, если указанное условие выполняется (true
), и другой блок кода, если условие не выполняется (false
). Это можно записать так:
if(condition) {
// Код, который будет выполнен, если условие condition истинно
} else {
// Код, который будет выполнен, если условие condition ложно
}
Код JavaScript в следующем примере выводит: «Хороших выходных!» если текущий день пятница, в противном случае будет выведен текст «Хорошего дня!».
var now = new Date();
var dayOfWeek = now.getDay(); // Sunday - Saturday : 0 - 6
if(dayOfWeek == 5) {
alert("Хороших выходных!");
} else {
alert("Хорошего дня!");
}
Оператор if…else if…else
if … else if … else
специальный оператор, который используется для объединения нескольких операторов if … else
.
if(condition1) {
// Код, который будет выполнен, если condition1 истинно
} else if(condition2) {
// Код, который будет выполнен, если condition1 ложно, а condition2 истинно
} else {
// Код, который будет выполнен, если оба condition1 и condition2 ложны
}
В следующем примере будет выводиться «Хороших выходных!» если текущий день пятница, и «Хорошего воскресенья!» если текущий день воскресенье, в противном случае будет выведено «Хорошего дня!»
var now = new Date();
var dayOfWeek = now.getDay(); // Sunday - Saturday : 0 - 6
if(dayOfWeek == 5) {
alert("Have a nice weekend!");
} else if(dayOfWeek == 0) {
alert("Have a nice Sunday!");
} else {
alert("Have a nice day!");
}
Вы узнаете об операторе switch-case JavaScript в следующей главе.
Тернарный оператор
Тернарный оператор обеспечивает сокращенный способ записи операторов if … else
. Тернарный оператор представлен символом вопросительного знака (?
) и принимает три операнда: условие для проверки, результат для true
и результат для false
. Его основной синтаксис:
var result = (condition) ? value1 : value2
Если условие будет истинным, будет возвращено value1
, в противном случае будет возвращено value2
. Чтобы понять, как работает этот оператор, рассмотрим следующие примеры:
var userType;
var age = 21;
if(age < 18) {
userType = 'Child';
} else {
userType = 'Adult';
}
alert(userType); // Выводит Adult
Используя тернарный оператор, тот же код можно написать более компактным способом:
var age = 21;
var userType = age < 18 ? 'Child' : 'Adult';
alert(userType); // Выводит Adult
Как видно из приведенного выше примера, поскольку указанное условие оценивается как ложное, возвращается значение в правой части двоеточия (:
), которое представляет собой строку 'Adult'
.
Код, написанный с использованием тернарного оператора иногда бывает трудно прочитать. Тем не менее, он предоставляет отличный способ писать компактные операторы if-else.