Ask HN: TIL JavaScript switch is weird – why? Given the following, what do you think the console output will be?
Before you raise your hand, yes I've intentionally omitted the break statements.And, the answer is:
The switch is designed to execute every case after the first match, which is the reason for placing a `break` after each case.My assumption was always that the `break` was to avoid wasting the interpreter's time on checking the remaining cases when you knew they'd all be non-matches, not that `break` was basically required. This means that the switch statement itself is basically useless without `break`, unless each case is ordered in a 1[2,[3,[4]]] fashion (I imagine that's quite rare). Is this just an artifact taken from C, or is there something else I'm overlooking? |