Итак, во-первых, что такое Switch Statement?
Переключатель - это функция, которая получает данные, и эти данные будут проанализированы, если эти данные совпадают с одним из наших случаев, он выполняет инструкции в этом случае и возвращает значение.
Он похож на операторы if и else, но должен оценивать одно значение - внутри переключателя мы используем регистр для оценки каждого значения.
Когда вы используете множество операторов else if, что-то очень не так, и обычно вам следует использовать что-то вроде переключателя, поскольку он больше подходит для цели и намерения. Вот еще кое-что, если злоупотребляют:
Проблемы с переключателем
У switch есть несколько проблем: от процедурного потока управления до нестандартного способа обработки блоков кода, в остальной части JavaScript используются фигурные скобки, а в switch - нет. Синтаксически это не лучшее из JavaScript, равно как и его дизайн. Нам приходится добавлять перерыв вручную; операторов в каждом случае, что может привести к сложной отладке и вложенным ошибкам в дальнейшем, если мы забудем! К этому нужно относиться осторожно.
Мы часто используем объектный поиск для вещей в JavaScript, часто для вещей, о которых мы никогда не думали использовать switch для - так почему бы не использовать литерал Object для замены переключателя? Объекты намного более гибкие, удобочитаемы и удобны в обслуживании, и нам не нужно вручную ломать; каждый случай. Они намного дружелюбнее и для начинающих разработчиков JavaScript, поскольку являются стандартными объектами.
Причины не использовать переключатель
- По мере увеличения количества «дел» производительность объекта (хеш-таблицы) становится лучше, чем средняя стоимость переключения (порядок рассмотрения дела). Объектный подход - это поиск по хеш-таблице, и переключатель должен оценивать каждый случай, пока не будет найдено совпадение и разрыв.
- Более удобный и читаемый. Нам также не нужно беспокоиться о перерыве; провалившиеся заявления и дела - это просто Объект.
Обычно мы помещаем переключатель внутрь функции и получаем возвращаемое значение. Давайте сделаем то же самое и сделаем switch case полезной функцией с возвратом литерала объекта:
Обзор
Объектные литералы - это более естественный элемент управления потоком в JavaScript, переключатель немного устарел, неуклюж и подвержен сложным ошибкам отладки. Объекты более расширяемы, удобны в обслуживании, и мы можем тестировать их намного лучше. Они также являются частью шаблона проектирования и очень часто используются в других задачах программирования. Литералы объектов могут содержать функции, а также объекты любого другого типа, что делает их действительно гибкими! Каждая функция в литерале также имеет область видимости, поэтому мы можем вернуть закрытие из родительской функции.
// Я не навязываю правила - это просто еще один способ решения наших повседневных проблем