Конструкция if..else
Конструкция if..else проверяет некоторое условие и если это условие верно, то выполняет некоторые действия. Простейшая форма конструкции if..else:
if(условие){
некоторые действия
}
После ключевого слова if в круглых скобках идет условие, а после условия — блок кода с некоторыми действиями. Если это условие истинно, то затем выполняются действия, которые помещены в блоке кода:
const income = 100;
if(income > 50) {
console.log("доход больше 50");
}
Здесь в конструкции if используется следующее условие: income > 50. Если это условие возвращает true, то есть если константа income имеет значение больше 50, то браузер отображает сообщение. Если же значение income меньше 50, то никакого сообщения не отображается.
Условия могут быть сложными:
const income = 100;
const age = 19;
if(income > 50 && age > 18){
console.log("доход больше 50");
console.log("возраст больше 18");
}
Проверка наличия значения, if позволяет проверить наличие значения:
let myVar = 89;
if(myVar){
console.log(`Переменная myVar имеет значение: ${myVar}`);
}
Если переменная myVar имеет значение, как в данном случае, то в условной конструкции она возвратит значение true.
Здесь переменная myVar не имеет значения. (В реальности она равна undefined) Поэтому условие в конструкии if возвратит false, и действия в блоке конструкции if не будут выполняться:
let myVar;
if(myVar){
console.log(`Переменная myVar имеет значение: ${myVar}`);
}
Нередко для проверки значения переменной используют альтернативный вариант — проверяют на значение undefined и null:
if (myVar !== undefined && myVar !== null) {
console.log(`Переменная myVar имеет значение: ${myVar}`);
}
Выражение else
Выше мы рассмотрели, как определить действия, которые выполняются, если условие после if истинно. Но что, если мы хотим также выполнять еще один набор инструкций, если условие ложно? В этом случае можно использовать блок else. Данный блок содержит инструкции, которые выполняются, если условие после if ложно, то есть равно false:
if(условие){
действия, если условие истинно
}
else{
действия, если условие ложно
}
То есть если условие после if истинно, выполняется блок if. Если условие ложно, выполняется блок else:
const income = 45;
if(income > 50){
console.log("Доход больше 50");
}
else{
console.log("Доход меньше или равен 50");
}
Здесь константа income равна 45, поэтому условие после оператора if возвратит false, и управление перейдет к блоку else.
Альтернативные условия
С помощью конструкции else if мы можем добавить альтернативное условие к блоку if. Например, в условие значение income может быть больше определенном значению может быть меньше, а может быть равно ему:
const income = 50;
if(income > 50) {
console.log("Доход больше 50");
}
else if(income === 50){
console.log("Доход равен 50");
}
else{
console.log("Доход меньше 50");
}
В данном случае выполнится блок else if. При необходимости мы можем использовать несколько блоков else if с разными условиями:
const income = 500;
if(income < 200){
console.log("Доход ниже среднего");
}
else if(income>=200 && income<300){
console.log("Чуть ниже среднего");
}
else if(income>=300 && income<400){
console.log("Средний доход");
}
else{
console.log("Доход выше среднего");
}
True или false
В javascript любая переменная может применяться в условных выражениях, но не любая переменная представляет тип boolean. И в этой связи возникает вопрос, что возвратит та или иная переменная — true или false? Много зависит от типа данных, который представляет переменная:
undefinedвозвращаетfalsenullвозвращаетfalsebooleanесли константа/переменная равнаfalse, то возвращаетсяfalse. Соответствено если константа/переменная равнаtrue, то возвращаетсяtruenumberвозвращаетfalse, если число равно0илиNaN, в остальных случаях возвращаетсяtruestringвозвращаетfalse, если константа/переменная равна пустой строке, то есть ее длина равна0, в остальных случаях возвращаетсяtrueobjectвсегда возвращаетtrue