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

Конструкция switch case

@serverSerrverlesskiy

Конструкция switch служит для сравнения значения на равенство с различными вариантами.

При этом равенство подразумевается в смысле оператора строгое равенство ===, сравнивать с регулярным выражением или как-то еще switch не умеет. То есть значения должны быть одного типа, чтобы выполнялось равенство.

comparison

Если условие совпадает, то выполняется блок кода📟 , связанный с соответствующим case. Если ни одно условие не подошло, то выполняется код📟 , указанный в блоке default, если он есть. Для выхода из конструкции используется команда break. Если ее не указывать, автоматически выполнится блок кода📟 в следующем case и т.д. Поэтому break используем в наших скриптах обязательно, чтобы не гонять интерпретатор по всем case тем самым снижая производительность скрипта.

Видео#

Синтаксис#

Syntax

Конструкция switch имеет один или более блоков case и необязательный блок default.

Выглядит она так:

switch (n) {  case 1:    // блок кода 1;    break  case 2:    // блок кода 2;    break  // .......  // другие варианты  case  // .......  default:  // блок кода если не подошло ни одно условие;}

n - это булеан boolean условие.

Примеры#

Math

Рассмотрим простейший пример 👇 :

Интерактивный редактор
Результат
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Здесь оператор switch последовательно сравнит a со всеми вариантами из case. Сначала 3, затем – так как нет совпадения – 4. Совпадение найдено, будет выполнен этот вариант, со строки str = 'В точку!' и далее, до ближайшего break, который прервёт выполнение.

Wow

Рассмотрим такой пример 👇 :

Интерактивный редактор
Результат
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Здесь оператор switch последовательно сравнит a со всеми вариантами из case. Но здесь идет сравнение не чисел, а строк. Так можно сделать с любыми типами данных, главное чтобы сравнивались одинаковые типы данных.

Замена if#

Также Switch используется чтобы заменить множественные if.

Например, можно заменить данный код 👇 :

Интерактивный редактор
Результат
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

На этот 👇 :

Интерактивный редактор
Результат
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Результат будет тот же, но код📟 станет более читабельным и удобным для работы.

React Native#

Пример использования в React Native приложениях.

Проблемы?#

Problem

Пишите в Discord или телеграмм чат, а также подписывайтесь на наши новости

JavaScript Camp

Вопросы:#

Question

Можно ли при помощи switch сравнить что-то с регулярными выражениями?

  1. true
  2. false

Какой оператор сравнения использует switch?

  1. =
  2. ===
  3. ==

Какое ключевое слово останавливает процесс сравнения в switch?

  1. break
  2. stop
  3. default

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

Sumerian school

Ссылки:#

  1. MDN web docs
  2. Learn JavaScript
  3. Справочник JavaScript

Contributors ✨#

Thanks goes to these wonderful people (emoji key):


Philipp Dvinyaninov

📖

Dmitriy Vasilev

💵

Resoner2005

🐛 🎨 🖋

Navernoss

🖋 🐛 🎨

Become a Patron!