Оператор Swith / Case в JavaScript

Лекция про оператор Swith / Case в JavaScript

Другие языки программирования, помимо условной конструкции if, поддерживают оператор switch. Это специализированная альтернатива if, предназначенная для определенных сценариев. Она полезна, когда необходима цепочка if else для проверки на равенство. Например:

if (status === 'processing') {
    // Делаем раз
    } else if (status === 'paid') {
    // Делаем два
    } else if (status === 'new') {
    // Делаем три
    } else {
    // Делаем четыре
    }

                        

Одна из особенностей этой сложной проверки заключается в том, что каждая ветка зависит от значения переменной status. Оператор switch позволяет более кратко и выразительно записать этот код:

switch (status) {
    case 'processing': // status === 'processing' (строгое соответствие)
      // Делаем раз
      break;
    case 'paid': // status === 'paid'
      // Делаем два
      break;
    case 'new': // status === 'new'
      // Делаем три
      break;
    default: // else
      // Делаем четыре
  }

                        

Оператор switch является сложной конструкцией из-за следующих компонентов:

1) Заголовок switch, который содержит ключевое слово switch и переменную, по которой будет осуществляться выбор поведения.

2) Фигурные скобки, в которых перечислены различные варианты выбора.

3) Конструкции case и default, в которых определяется поведение для разных значений переменной. Каждый case подобен условному оператору if, а default аналогичен ветке else. Указывать default необязательно, но рекомендуется для чистоты кода.

4) Использование оператора break предотвращает "проваливание" выполнения от одного case к другому без необходимости. В итоге, оператор switch представляет собой мощный инструмент для выбора различных вариантов исполнения кода

В отличие от других конструкций, фигурные скобки в switch не определяют блок кода. Внутри них допускается использовать только синтаксис для case и default. Внутри каждого case (и default) разрешено выполнять произвольный код, открывая широкие возможности для логики программы

switch (count) {
    case 1:
      // Делаем что-то полезное
      break;
    case 2:
      // Делаем что-то полезное
      break;
    default:
      // Что-то делаем
  }

                        

Иногда выполнение кода внутри блока case может привести к завершению функции, содержащей switch. В таком случае необходимо вернуть полученный результат наружу. Для этого можно воспользоваться двумя способами.

Подход первый: объявить переменную перед switch, заполнить её внутри блока case, а затем вернуть значение этой переменной в конце функции.

(count) => {
    // Объявляем переменную
    let result;
    
    // Заполняем
    switch (count) {
      case 1:
        result = 'one';
        break;
      case 2:
        result = 'two';
        break;
      default:
        result = null;
    }
    
    // Возвращаем
    return result;
    };

                        

Более простой и компактный подход заключается в том, что вместо создания переменной вы можете использовать оператор return внутри блока case для непосредственного возврата значения из функции. Поскольку после оператора return исполнение функции завершается, можно избавиться от использования оператора break:

(count) => {
    switch (count) {
      case 1:
        return 'one';
      case 2:
        return 'two';
      default:
        return null;
    }
  };

                        

Использование оператора switch в коде не является абсолютно необходимым с технической точки зрения, поскольку можно обойтись без него. Его главное преимущество заключается в том, что он позволяет программисту более явно выразить свои намерения при проверке конкретных значений переменной. Хотя использование switch может привести к небольшому увеличению физического объема кода, он делает его более читаемым и понятным, в отличие от цепочки блоков else if.

Главная Обо мне Работы
Обратная связь