From my experience, I would say that if you understand this language deeply, you will love it as you can use it to do everything and it's enjoyable to code, there are so many techniques, libraries and frameworks to boost your productivity.
Get it from Amazon: https://www.amazon.com/gp/product/1497408180
You will learn the fundamental, advanced techniques and also how to write a more effective program using Functional Programming and Object Oriented from it.
Get it from Amazon: https://www.amazon.com/gp/product/1617292850
You will find this book is difficult, but the return is really worth.
In the new 3rd edition, Marijn Haverbeke updated the book content to ES6. I personally like the exercise in the book which will teach you how to solve the complex problem elegantly.
If you picked this book, I recommend you to try to solve the exercises by yourself first, give it time then compare your answer with the author's solution.
Get it from Amazon: https://www.amazon.com/gp/product/0596517742
Get it from Amazon: https://www.amazon.com/gp/product/0321812182
Another legend book by Martin Fowler, if you are passionate about writing clean and maintainable code. This is the only book you need; you will learn a lot of refactoring techniques from this book.
Get it from Amazon: https://www.amazon.com/gp/product/0134757599