JavaScript: переключить или если еще. На протяжении всех дней программирования я… | Мишель Вонг

3 минуты чтения

·

25 ноября 2019 г.

Не можете решить?

На протяжении всех дней написания кода на JavaScript я постоянно спорил о том, использовать ли регистр switch или оператор if else для моего условного оператора. Поэтому, естественно, я решил написать блог, чтобы взвесить различия (для меня и вас) и посмотреть, какой из них лучше в конкретных обстоятельствах.

Оператор switch обычно более эффективен, чем набор вложенных операторов if. Когда вам нужно выбрать, какой из них использовать, он основан на удобочитаемости и выражении, которое тестирует оператор.

В основном, if else используется для принятия решений, в то время как оператор switch используется для проверки значения данной переменной по списку case value.

  • Выражение внутри оператора if определяет, следует ли выполнять операторы внутри блока if или в блоке else. Для переключателя выражение внутри оператора переключателя решает, какой случай выполнить.
  • Оператор if-else проверяет как равенство, так и логическое выражение. С другой стороны, switch проверяет только равенство.
  • Оператор if оценивает целое число, символ, указатель или тип с плавающей запятой или логический тип. С другой стороны, оператор switch оценивает только символьный или целочисленный тип данных.
  • Последовательность выполнения аналогична выполнению оператора в блоке if или выполнении оператора в блоке else. Однако выражение в операторе switch определяет, какой случай выполнять, и если вы не применяете оператор break после каждого случая, он будет выполняться до конца оператора switch.
  • Для оператора if-else, если выражение внутри if окажется ложным, будет выполнен оператор внутри блока else. Для оператора switch, если выражение внутри оператора switch оказывается ложным, выполняются операторы по умолчанию.
  • Известно, что трудно редактировать операторы if-else, поскольку утомительно отслеживать, где требуется исправление. Многие согласны с тем, что редактировать операторы switch гораздо проще, поскольку их легко отследить.

Вот общий вид оператора if-else по сравнению с регистром switch:

Это общий синтаксис оператора if-else:

if (condition1) { // Тело if }

else if (condition2) { // Тело if }

else if (condition3) { // Тело if }

else { // по умолчанию, если все условия возвращают false }

И это общий синтаксис для переключателя:

переключатель (переменный)

{

case <значение переменной1>: //Что-нибудь сделать

break;

case <значение переменной2>://Что-нибудь сделать

break;

по умолчанию: //По умолчанию будет работать, если все случаи не пройдены

break;

}

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

Некоторые ключевые преимущества переключения по лестнице if-else:

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

В конце концов, выбор за вами, и я надеюсь, что этот блог поможет вам на правильном пути к принятию наиболее обоснованного решения, когда использовать оператор if-else, а не case case!

Документация 22.2: DevExtreme — Переключатель JavaScript

Переключатель — это компонент пользовательского интерфейса, который может находиться в двух состояниях: «Вкл.» и «Выкл.».

Входит в состав: dx.web.js, dx.all.js

импортировать переключатель из «devextreme/ui/switch»

Посмотреть демонстрацию Читать руководства

См. также
  • Настройка DevExtreme : Angular | Вью | Реагировать | jQuery | УгловойJS | Нокаут
  • Настройка компонента пользовательского интерфейса : Angular | Вью | Реагировать | jQuery | УгловойJS | Нокаут

Объект, определяющий свойства конфигурации для компонента Switch UI.

Имя Описание
ключ доступа

Указывает сочетание клавиш, которое устанавливает фокус на компонент пользовательского интерфейса.

активстатеэнаблед

Указывает, изменяет ли компонент пользовательского интерфейса свое визуальное состояние в результате взаимодействия с пользователем.

инвалид

Указывает, реагирует ли компонент пользовательского интерфейса на действия пользователя.

элементАтрибут

Указывает глобальные атрибуты, которые должны быть присоединены к элементу-контейнеру компонента пользовательского интерфейса.

focusStateEnabled

Указывает, можно ли сфокусировать компонент пользовательского интерфейса с помощью навигации с помощью клавиатуры.

высота

Задает высоту компонента пользовательского интерфейса.

подсказка

Задает текст для подсказки, которая появляется, когда пользователь делает паузу в компоненте пользовательского интерфейса.

hoverStateEnabled

Указывает, изменяет ли компонент пользовательского интерфейса свое состояние, когда пользователь делает на нем паузу.

действительно

Указывает или указывает, допустимо ли значение редактора.

наименование

Значение, которое будет присвоено атрибуту имени базового элемента HTML.

onContentReady

Функция, которая выполняется при отрисовке компонента пользовательского интерфейса и каждый раз при перерисовке компонента.

при утилизации

Функция, которая выполняется перед удалением компонента пользовательского интерфейса.

при инициализации

Функция, используемая в платформах JavaScript для сохранения экземпляра компонента пользовательского интерфейса.

onOptionChanged

Функция, которая выполняется после изменения свойства компонента пользовательского интерфейса.

onValueChanged

Функция, которая выполняется после изменения значения компонента пользовательского интерфейса.

Только для чтения

Указывает, доступен ли редактор только для чтения.

rtlEnabled

Переключает компонент пользовательского интерфейса на представление справа налево.

SwitchOffText

Задает текст, отображаемый при отключении компонента пользовательского интерфейса.

SwitchOnText

Задает текст, отображаемый при включении компонента пользовательского интерфейса.

tabIndex

Указывает номер элемента, когда для навигации используется клавиша Tab.

ошибка проверки

Информация о нарушении правила проверки. Содержит первый элемент из массива validationErrors.

ошибки проверки

Массив не прошедших проверку правил.

валидациямессажемоде

Указывает способ отображения сообщения о правилах проверки, которые не удовлетворяются значением этого редактора.

валидациямессажепозитион

Указывает положение сообщения проверки относительно компонента. Сообщение проверки описывает правила проверки, которым не удовлетворяет значение этого компонента.

статус проверки

Указывает или задает текущий статус проверки.

значение

Логическое значение, указывающее, является ли текущее состояние переключателя «Вкл.» или «Выкл.».

видимый

Указывает, виден ли компонент пользовательского интерфейса.

ширина

Задает ширину компонента пользовательского интерфейса.

См. также
  • Настройка компонента пользовательского интерфейса : Angular | Вью | Реагировать | jQuery | УгловойJS | Нокаут

В этом разделе описываются элементы, используемые для управления компонентом пользовательского интерфейса.

Имя Описание
начало обновления()

Предотвращает обновление компонента пользовательского интерфейса до тех пор, пока не будет вызван метод endUpdate().

Параметры по умолчанию (правило)

Указывает зависящие от устройства свойства конфигурации по умолчанию для этого компонента.

распоряжаться()

Удаляет все ресурсы, выделенные экземпляру Switch.

элемент()

Получает корневой элемент компонента пользовательского интерфейса.

endUpdate()

Обновляет компонент пользовательского интерфейса после вызова метода beginUpdate().

фокус()

Устанавливает фокус на компонент пользовательского интерфейса.

getInstance (элемент)

Получает экземпляр компонента пользовательского интерфейса, найденный с помощью его узла DOM.

экземпляр()

Получает экземпляр компонента пользовательского интерфейса. Используйте его для доступа к другим методам компонента пользовательского интерфейса.

выкл(имя события)

Отсоединяет все обработчики событий от одного события.

выкл (имя события, обработчик события)

Отсоединяет конкретный обработчик событий от одного события.

on(eventName, eventHandler)

Подписка на событие.

по(событиям)

Подписка на события.

вариант()

Получает все свойства компонента пользовательского интерфейса.

опция (имя_опции)

Получает значение одного свойства.

опция (имя опции, значение опции)

Обновляет значение одного свойства.

опция(опции)

Обновляет значения нескольких свойств.

registerKeyHandler (ключ, обработчик)

Регистрирует обработчик, который будет выполняться, когда пользователь нажимает определенную клавишу.

перекрасить()

Перерисовывает компонент пользовательского интерфейса без перезагрузки данных. Вызовите его, чтобы обновить разметку компонента пользовательского интерфейса.

сброс()

Сбрасывает свойство value до значения по умолчанию.

resetOption(optionName)

Сбрасывает свойство до его значения по умолчанию.

В этом разделе описываются события, запускаемые этим компонентом пользовательского интерфейса.

Имя Описание
контент готов

Возникает, когда содержимое компонента пользовательского интерфейса готово.

утилизация

Возникает перед удалением компонента пользовательского интерфейса.

инициализировано

Возникает только один раз после инициализации компонента пользовательского интерфейса.

optionChanged

Возникает после изменения свойства компонента пользовательского интерфейса.

значение изменено

Возникает после изменения значения компонента пользовательского интерфейса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *