Итак, во-первых, что такое Switch Statement?

Переключатель - это функция, которая получает данные, и эти данные будут проанализированы, если эти данные совпадают с одним из наших случаев, он выполняет инструкции в этом случае и возвращает значение.

Он похож на операторы if и else, но должен оценивать одно значение - внутри переключателя мы используем регистр для оценки каждого значения.

Когда вы используете множество операторов else if, что-то очень не так, и обычно вам следует использовать что-то вроде переключателя, поскольку он больше подходит для цели и намерения. Вот еще кое-что, если злоупотребляют:

Проблемы с переключателем

У switch есть несколько проблем: от процедурного потока управления до нестандартного способа обработки блоков кода, в остальной части JavaScript используются фигурные скобки, а в switch - нет. Синтаксически это не лучшее из JavaScript, равно как и его дизайн. Нам приходится добавлять перерыв вручную; операторов в каждом случае, что может привести к сложной отладке и вложенным ошибкам в дальнейшем, если мы забудем! К этому нужно относиться осторожно.

Мы часто используем объектный поиск для вещей в JavaScript, часто для вещей, о которых мы никогда не думали использовать switch для - так почему бы не использовать литерал Object для замены переключателя? Объекты намного более гибкие, удобочитаемы и удобны в обслуживании, и нам не нужно вручную ломать; каждый случай. Они намного дружелюбнее и для начинающих разработчиков JavaScript, поскольку являются стандартными объектами.

Причины не использовать переключатель

  • По мере увеличения количества «дел» производительность объекта (хеш-таблицы) становится лучше, чем средняя стоимость переключения (порядок рассмотрения дела). Объектный подход - это поиск по хеш-таблице, и переключатель должен оценивать каждый случай, пока не будет найдено совпадение и разрыв.
  • Более удобный и читаемый. Нам также не нужно беспокоиться о перерыве; провалившиеся заявления и дела - это просто Объект.

Обычно мы помещаем переключатель внутрь функции и получаем возвращаемое значение. Давайте сделаем то же самое и сделаем switch case полезной функцией с возвратом литерала объекта:

Обзор

Объектные литералы - это более естественный элемент управления потоком в JavaScript, переключатель немного устарел, неуклюж и подвержен сложным ошибкам отладки. Объекты более расширяемы, удобны в обслуживании, и мы можем тестировать их намного лучше. Они также являются частью шаблона проектирования и очень часто используются в других задачах программирования. Литералы объектов могут содержать функции, а также объекты любого другого типа, что делает их действительно гибкими! Каждая функция в литерале также имеет область видимости, поэтому мы можем вернуть закрытие из родительской функции.

// Я не навязываю правила - это просто еще один способ решения наших повседневных проблем