Hi. Through out my javascript hacking I see little awful patterns. Here are some of them.

switch (trafficLight) {
case 'red':
stop();
break;
case 'yellow':
finishIfInProgressOrWait();
break;
case 'green':
go();
break;
default:
throw new Error('color unknown');
}

⬆️ could be rewritten as ⬇️

var strategies = {
red: stop,
yellow: finishIfInProgressOrWait,
green: go
}, handleInvalidColor = function () {
throw new Error('color unknown');
}, strategy = strategies[trafficLight] || handleInvalidColor;

strategy();

⬆️ there we have another one, and ⬇ something often used for default values ️

strategy = strategies[light] || valueInCaseTheOtherIsFalsyLikeUndefined;

similarly to ⬆️ we can also do falsy checks ⬇️

maybeDoStuff && maybeDoStuff();

unlike ⬆️, ⬇️ works only for undefined

[valueOrUndefined].map(doStuff);

⬇️ last one

function either (f) {
return {
or: function (defaultValue) {
try {
var value = f();
if (value !== undefined) {
return value;
} else {
return defaultValue;
}
} catch (error){
return defaultValue;
}
}
};
}