Условия
Сохранение условия в переменную
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);