Оскільки в інших відповідях було пояснено, як це зробити, фактично не пояснюючи, чому це працює:
Коли switch
виконується, він знаходить перше відповідне case
висловлювання, а потім виконує кожен рядок коду після комутатора, поки він не потрапить або в break
оператор, або в кінець switch
(або у return
заяві, щоб залишити всю функцію, що містить). Коли ви навмисно опускаєте break
так, що код під наступним також case
виконується, що називається прохідним . Отже, для вимоги ОП:
switch (pageid) {
case "listing-page":
case "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Забути включення break
висловлювань - досить поширена помилка кодування, і це перше, на що слід звернути увагу, якщо ваша switch
робота не працює так, як ви очікували. З цієї причини деякі люди люблять ставити коментар, щоб сказати "провалитися", щоб зрозуміти, коли заяви про перерви були спеціально пропущені. Я роблю це в наступному прикладі, оскільки це трохи складніше і показує, як деякі випадки можуть включати код, який потрібно виконати до їх пропускання:
switch (someVar) {
case 1:
someFunction();
alert("It was 1");
// fall through
case 2:
alert("The 2 case");
// fall through
case 3:
// fall through
case 4:
// fall through
case 5:
alert("The 5 case");
// fall through
case 6:
alert("The 6 case");
break;
case 7:
alert("Something else");
break;
case 8:
// fall through
default:
alert("The end");
break;
}
Ви також можете (необов'язково) включити default
справу, яка буде виконана, якщо жодна з інших справ не збігається - якщо ви не включитеdefault
та жодні випадки, то нічого не відбувається. Ви можете (за бажанням) перейти до випадку за замовчуванням.
Отже, у моєму другому прикладі, якщо someVar
це 1, він би зателефонував, someFunction()
і тоді ви побачите чотири сповіщення, як це потрапляє через кілька випадків, у деяких з яких є сповіщення під ними. Якщо someVar
це 3, 4 або 5, ви побачили б два сповіщення. Якщо someVar
це 7, ви побачите "Щось інше", а якщо це 8 або будь-яке інше значення, ви побачите "Кінець".