Условия
Сохранение условия в переменную
let a = 5;
const isEqual1 = a === 4; // false
const isEqual2 = a === 5; // true
const isEqual3 = a >= 0; // true
const isEqual4 = a >= 10; // false
if-else
let a = true;
if (a) {
console.log('a is true');
} else {
console.log('a is false');
}
// nesting - bad practice
if (a) {
if (a > 0) {
console.log('a is positive');
} else {
console.log('a is negative');
}
} else {
console.log('a is false');
}
without else inside function
const a = true;
const returnA = (param) => {
if (param > 0) {
console.log('a is positive');
}
console.log('a is negative');
}
switch-case
Удобно пользоваться, когда вариантов значений может быть много. case - проверка на случай, их может быть сколь угодно.
break - прерывание инструкции, если какой-либо case будет true, то проверка прервётся и другие случаи не будут проверяться.
default - аналог else, если не выбирется ни один case, то сработает default.
Если бы не стоял break, то инструкции для a = 6, a = 7, default также бы сработали.
let A = 5;
// check A
switch(A) {
case 0: console.log('A = 0'); break;
case 1: console.log('A = 1'); break;
case 2: console.log('A = 2'); break;
case 3: console.log('A = 3'); break;
case 4: console.log('A = 4'); break;
case 5: console.log('A = 5'); break;
case 6: console.log('A = 6'); break;
case 7: console.log('A = 7'); break;
// default case
default: console.log('A are not inside 0-7 range');
};
Можно также менять переприсваивать переменные
let text = '';
let tooltip = '';
...
case 'duration':
text = calcDuration(item);
tooltip = 'Время в часовом поясе хаба';
break;
...
Тернарный оператор (?:)
Более лаконичный if-else
.
let a = true;
a ? alert(true) : alert(false);