Javascript Books

What is the best book to learn JavaScript from beginning to advanced? ? (With exercices)

1 Like

FYI: [ECMAScript book]
(ECMAScript book)

Typical start: You don’t know JS.

Though that’s largely ES5 so follow up with either

Advanced Books:


None of these really cover interacting with the browser, DOM or Node in depth.

And always keep Mozilla Developer Network (MDN) close by. has a JavaScript section if you are so inclined.

Edit: Practical Modern JavaScript: Dive into ES6 goes straight into ES2015 but may be a bit dryer than the YdkJS series. reviews


Kyle Simpson has whole series of books they are pretty decent.


I would look at picking up some of rxjs books - I’m having quite a good time using that (in it’s redux-observables FP style form with react-native)

1 Like

Intro to RxJS:
ReactiveX/Learn Rx: Functional Programming in Javascript

Strictly speaking it’s a technology separate from JavaScript (there are libraries for other programming languages) - i.e. you should have some fundamental understanding of JavaScript first.

That being said there is the ECMAScript TC39 Observable proposal (still at stage 1).

Promise to not use Promises – ES7 Observables by Brian Holt (2015)
(Meandering 2016 version)


+1 for You don’t know JS, or anything else by Kyle Simpson

For intermediate to advanced stuff, Frontend Masters is awesome - those are video workshops instead of books though.

Another classic is Javascript: The Good Parts

Does anyone have any opinion about “Secrets of the javascript ninja”?

In the ES5 days the first edition of SotJSN was quite good - not sure how the second edition after the ES2015 update fares in today’e environment; so I’d go with “JavaScript Allongé, the Six Edition” first, even if its objective is a bit different.

One thing to be aware of is that ES5 based materials usually just execute code in the browser - and if you use the latest version of Chrome you can usually do the same with ES2015 - however you can’t cover the (important) topic of ES2015 modules properly in just the browser (<script type="module"> doesn’t count) - ultimately that requires gaining some familiarity with the npm/Node.js toolchain (not necessarily programming Node.js) - and that is really where most materials have a gap. At least Practical Modern JavaScript introduces the use of npm in the first chapter to give Babel a spin, and uses node in Chapter 8 to demonstrate CommonJS modules - but there is no demonstration of how to use a bundler like Browserify with Babel to use ES2015 modules in the browser. While bundling is not strictly a JavaScript concern, it demonstrates a significant use case for ES2015 modules.

1 Like

Another route could be to work through an online course, then use selected books to fill in the blanks or dig deeper into selected topics for reinforcement. I found stuff by Steven Grider / Max Schwarzmuller on Udemy to be really good for JS.

The main problem I found with books is that unless I am are actually building something along with it, my retention of mechanisms at the concrete level isn’t that great. Also, many authors are just not that good at writing.

MDN for documentation.
For learning, this is the best.

1 Like

I will study this material. It sounds very good.

I have to admit I was a bit surprised when you asked for “beginning to advanced”. From your other posts I felt that you already had a pretty full plate in front of you. From that I would have expected wanting to learn “just enough JavaScript” to get by with Phoenix channels …

React does have the issue that more recent blog/tutorials (and source code) use “ES Next” very heavily. For example Rest parameter, spread syntax and destructuring assignment are everywhere.

The jQuery temptation is understandable but in my personal experience it’s a trap. Initially it’s very easy to make a static page feel more interactive and embellish it with effects and animations but typically the more code you add the messier it gets unless you are extremely disciplined.

The first issue I ran into was: Where do I put my non-DOM UI state? If I remember correctly jQuery makes it possible to attach an arbitrary JavaScript object to a DOM element. That leads to pieces of UI state being scattered (unconnectedly) all over the page which works as long as that state only has “local” relevance. But eventually you get to a point where some logic needs access to some UI state over here and over there - and that gets messy pretty quickly.

One issue with jQuery is that you are never encouraged to learn enough JavaScript to write standalone JavaScript code. But there comes a point where you need to start writing jQuery independent code to, for example, independently manage your UI-state and only use jQuery to manipulate the DOM - in order to get out and stay out of the mess. And not knowing enough JavaScript makes it extremely difficult to leave jQuery behind and use a different library or framework for whatever you are doing next.

For what you are currently doing I think you should look at something like Unpoly (or Intercooler.js) for your current application. That should put somewhat of a buffer between you and jQuery while giving you access to lots of features that you can use immediately.

Also SPAs aren’t the be-all and end-all. The drive to mobile-first web development could easily start going in a different direction.

Just yesterday I ran into the Push/Render/Pre-cache/Lazy-load (PRPL) pattern which somehow lead me to Hacker News readers as Progressive Web Apps which featured a surprisingly performant viperHTML/hyperHTML example - which isn’t SPA technology nor does it use whole page VDOM.

By the hyperHTML developer:
hyperHTML: A Virtual DOM Alternative
hyperHTML is killing it!
(Whether this particular incarnation is going to catch on is an entirely different question.)


@peerreynders Indeed, I just started learning programming. I have chosen Elixir as my back-end language.
My motivation comes from my wish to build a web app (not a SPA).
The concept is similar to DROPBOX. The interface will allow users to manages files attached to their posts.
I have learned the basic syntax of Elixir. Now I will start studying concurrent programming (processes etc).
I study Elixir 2 or 3 hours daily but sometimes I would like to change the subject. I thought about studying some front-end development. I studied basic HTML and CSS. I know that I don’t need to go deep.
At the other hand, I think that I should focus more on JavaScript. I heard that diving straight into frameworks and libraries is a bad decision. So I want to learn vanilla Javascript. The problem is finding materials that focus only on what is needed for my web app.
I found those options :

  • You Don’t Know JS (book);
  • (website);
  • JavaScript: Understanding the Weird Parts (Udemy online course).

I like to apply Pareto principle. Study 20% to learn 80% of Javascript. Which material can make this possible ?

The best vanilla JS Web development book I know is Professional JavaScript for Web Developers 3e (2011) but that’s strictly ES5.

There is also Modern JavaScript but again, ES5, just as old and it has you juggling PHP for the server side …

… and they pre-date the npm/Node.js boom.

You Don’t Know JS from Kyle Simpson are a must read book series. The books haven’t exercises but explain all the Javascript misconceptions as nobody explained before.

I started learning Javascript using this website and I like it !
I will study You Don’t Know JS after I finish.

Professional JavaScript for Web Developers, 4th Edition is at the printers.

The book has changed authors, so no idea if the update lives up to the quality of the predecessors.

Matt Frisbie’s previous books:

AngularJS Web Application Development Cookbook
Angular 2 Cookbook

At this point it is not clear whether there will be a DRM-free ebook version somewhere. As a rule books published by John Wiley & Sons, Inc. (the parent company of Wrox) require Adobe Digital Editions.

Ebooks sold through tend to be DRM-Free:

Usage Rights for a Wrox E-book File Wrox e-books purchased from are not protected with Digital Rights Management (DRM). They are “DRM-Free.” However, any Wrox e-book product you purchase from will come with certain restrictions that allow Wiley to protect the copyrights of its products.

FYI: ECMAScript book