Я воспользовался преимуществом провала в переключении
утверждениях может быть дважды. И это трудное “может быть”. Я действительно могу вспомнить только один случай, когда я не сломался
после каждого случая
блока. Для большинства из нас оператор 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”