Oh god. Javascript's optional semicolon really has inflicted a lot of damage, hasn't it?
I remember when I used to rave on at my colleagues that it was amazing back in 2005.
How wrong I was.
Horrible, isn't it? Baffling, quasi-random punctuation inserted to prevent random errors caused by poor design choices intended to make programmers' lives easier.
You lose the return value over (function(){})(). That's an awful recommendation.
Yup! We only recommend !function(){}(); for a module where you just need your function to run. If you rely on the return value use (function(){})(); or (function(){}()); (more on this: https://github.com/airbnb/javascript/issues/21)