Треки
/
JavaScript
JavaScript
/
Салабус
/
Конструкція switch
Ко

Конструкція switch у JavaScript

4 вправи

Про концепцію Конструкція switch

Загальний синтаксис

Крім умовної конструкції if, у JavaScript є також конструкція switch, яка дає змогу виконувати код за умовою. Її використовують, коли одну змінну потрібно порівняти з кількома варіантами. Порівняння відбувається через перевірку строгої рівності (===), див. порівняння. Для деякої змінної x конструкція switch у JavaScript має такий синтаксис.

switch (x) {
  case option1:
    // code that is executed when "x === option1" is true
    break;
  case option2:
    // code that is executed when "x === option2" is true
    break;
  default:
    // code that is executed when x does not equal any of the
    // options
}

Варіант default необовʼязковий. Його використовують, коли потрібно виконати якийсь код, якщо жоден з інших варіантів не збігається зі змінною.

Типове наскрізне виконання

Наведені вище інструкції break потрібні, бо в JavaScript усі варіанти типово виконуються наскрізно. Це означає, що без інструкції break виконався б увесь код у варіантах, розташованих нижче першого збігу, навіть якби x не збігався з ними. Така поведінка, коли варіанти типово виконуються наскрізно, є поширеною пасткою під час використання switch у JavaScript. Усередині функції замість break можна також використати return, щоб уникнути цієї проблеми.

Наскрізну поведінку можна застосувати собі на користь, коли той самий код потрібно виконати для кількох варіантів. Приклад цього можна знайти в документації MDN.

Область видимості

Типово змінні в різних варіантах case мають спільну область видимості. Це може призвести до несподіваної поведінки. Наприклад, через копіювання й вставлення варіанта можна отримати оголошення let message у двох варіантах, що призводить до помилки, див. документацію MDN. Щоб уникнути проблем через спільну область видимості, можна створити окрему область видимості для кожного варіанта, додавши блоки коду з фігурними дужками.

switch (x) {
  case option1: {
    // Variables declared here are contained to this case.
    break;
  }
  case option2: {
    // ...
    break;
  }
  default: {
    // ...
  }
}

Використання виразів

Замість змінної x можна також використати вираз. Цей вираз обчислюється один раз на початку конструкції switch, і його результат порівнюється з варіантами. Поширений випадок такого застосування - «перемикання за типом», яке виконує різний код залежно від типу змінної.

switch (typeof x) {
  case 'string':
    // code that is executed when x is a string
    break;
  case 'number':
    // code that is executed when x is a number
    break;
  default:
    // code that is executed when x has some other type
}

Варіанти теж можуть бути виразами.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Конструкція switch