Agree with all of the above. ES6 is great, as is (imho) using Javascript in a functional-programming style.
And, 100% avoid the "class" keyword.
When I was learning node.js I used "learnyounode", a terminal-based game/learning program. It was great. It had lessons which appropriately increased in difficulty, code examples, and guidance on which documentation to peruse in order to complete the coding assignments (each of which was a tiny application). There's one for Javascript too. They are both here:
And, 100% avoid the "class" keyword.
When I was learning node.js I used "learnyounode", a terminal-based game/learning program. It was great. It had lessons which appropriately increased in difficulty, code examples, and guidance on which documentation to peruse in order to complete the coding assignments (each of which was a tiny application). There's one for Javascript too. They are both here:
https://github.com/workshopper
Learning to understand closures and the "this" context (including prototypical inheritance) can take a bit, but is extremely useful and important.
Related to the above, learn the Javascript "module pattern" design pattern.
When you get to the appropriate point, the source code of Redux is fairly simple and clearly written: https://github.com/reactjs/redux/tree/master/src
"Secrets of the Javascript Ninja" is an older book but a good one. So is "Javascript: The Good Parts."