Я воспользовался преимуществом провала в переключении утверждениях может быть дважды. И это трудное “может быть”. Я действительно могу вспомнить только один случай, когда я не сломался после каждого случая блока. Для большинства из нас оператор switch будет в основном использоваться как сверхкомпактный if...else оператор, подобный следующему:
function getSeasonFromMonth(month)
{
let season = null;
switch (month)
{
case December:
case January:
case February: {
season = Winter;
break;
}
case March:
case April:
case May: {
season = Spring;
break;
}
case June:
case July:
case August: {
season = Summer;
break;
}
case September:
case October:
case November: {
season = Autumn;
break;
}
}
return season;
}
Хотя вы, вероятно, использовали бы return в этом случае, я не хочу, чтобы вы поняли суть. Что если, если вы поставите разрыв перед переключателем затем он автоматически ломается d после каждого квартала? Таким образом, вы могли бы переписать вышесказанное как:
function getSeasonFromMonth(month)
{
let season = null;
switch (month)
{
case 'December':
case 'January':
case 'February': {
season = 'Winter';
}
case 'March':
case 'April':
case 'May': {
season = 'Spring';
}
case 'June':
case 'July':
case 'August': {
season = 'Summer';
}
case 'September':
case 'October':
case 'November': {
season = 'Autumn';
}
}
return season;
}
Чистый код не повторяется, и я могу только представить себе кошмары, вызванные побочными эффектами забытого разрыва .
~Так что дайте нам перерыв TC39 и вставь это!~
Оригинал: “https://dev.to/nektro/the-auto-breaking-switch-statement-a-proposal-43dn”