I found that the CoC plugin, in combination with some of its extensions work perfectly.
Once you have the plugin set up, you then add CoC extensions for the languages you want to use. For JS this turns out to be the TypeScript server plugin, which gives your JS & Typescript support, including JSX and TSX. I also added the JSON plugin.
To add the CoC extensions, open Vim and install the extensions using:
:CocInstall coc-json coc-tsserver
That’s about it. Now if you open up a .js file, you should be getting JS code completion. If you mess up some code, you’ll get some error indications in the margins, telling you something is not quite right with your code.
A good way to find a list of more CoC extensions is through VimAwesome. There’s something in there for everyone it seems.