As I've been learning JS over the last couple years, one big challenge was having a foot in the ES5 patterns around closures (modules, IIFEs) versus ES6 patterns that change the approach (imports, arrow functions, let) vs Node (require).
Having waded through it all, I think knowing all of the ways to tackle it is valuable -- especially when so much legacy code uses patters from ES5 and earlier. That the browsers still haven't fully implemented the ES6 import spec (though I heard as of Chrome 60 it was available as en experimental option).