Поскольку другие ответы объясняли, как это сделать, не объясняя, почему это работает:
Когда выполняется 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 или любое другое значение, вы увидите «Конец».