Перейти к основному содержимому

Условия +

В тело условий можно добавлять:

  • Truthy/Falsy:
  • Операторы сравнения (>, <, ===)
  • Логические операторы: (&&, ||, !)

if, if-else

let a = true;

if (a) {
console.log('a is true');
} else {
console.log('a is false');
}

nesting

let b = 1;

if (b) {
if (b > 0) {
console.log('b is positive');
} else {
console.log('b is negative');
}
} else {
console.log('b is false');
}

nesting with return

const C = 5;

// ТАК НЕЛЬЗЯ: нельзя писать return внутри if, только внутри функции
if (C) {
if (C > 0) {
return console.log('C is positive');
}

return console.log('C in 0 or negative');
}

// ВОТ ТАК МОЖНО: return внутри функции
const checkValue = (C: number) => {
if (C) {
if (C > 0) {
return console.log('C is positive');
} else {
return console.log('C is negative');
}
}

return console.log('C is 0');
}

checkValue(11); // 'C is positive'

if-else

let c = 5;

if (c < 0) {
console.log('c is negative');
} else if (c > 0) {
console.log('c is positive');
} else if (c === 0) {
console.log('c is zero');
} else {
console.log('c is not defined');
}

Сокращенная запись

// если одно действие можно опустить тело условия
if (true) console.log('Hi!');

// можно записать на след. строке
if (true) console.log('Hi again');

if (false) {
console.log('first');
// если в теле else только одно действие, то {} тоже можно опустить
} else console.log('second');

switch-case

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');
}

// сработает console.log('A = 5');
// если не поставить break, то выполнятся все последующие консоли

Можно указывать несколько case подряд, если результат у них будет одинаковый

const a = 3;

switch (a) {
case 0:
console.log('a = 0');
break;

// перечисление case
case 1:
case 2:
case 3:
console.log('a > 0');
break;
}

Ternary operator (? :)

let SOME_CONST = true;

const D = SOME_CONST ? 'D is true' : 'D is false';

// Вложенные тернарные — ПЛОХАЯ ПРАКТИКА, лучше if/else.
const label = isReady ? (hasError ? 'Error' : 'OK') : 'Pending';