JavaScript for impatient programmers (ES2022 edition)
Please support this book: buy it or donate
(Ad, please don’t block.)

2 FAQ: book and supplementary material

This chapter answers questions you may have and gives tips for reading this book.

2.1 How to read this book

2.1.1 In which order should I read the content in this book?

This book is three books in one:

The quizzes and exercises play an important part in helping you practice and retain what you have learned.

2.1.2 Why are some chapters and sections marked with “(advanced)”?

Several chapters and sections are marked with “(advanced)”. The idea is that you can initially skip them. That is, you can get a quick working knowledge of JavaScript by only reading the basic (non-advanced) content.

As your knowledge evolves, you can later come back to some or all of the advanced content.

2.1.3 Why are some chapters marked with “(bonus)”?

The bonus chapters are only available in the paid versions of this book (print and ebook). They are listed in the full table of contents.

2.2 I own a digital version

2.2.1 How do I submit feedback and corrections?

The HTML version of this book (online, or ad-free archive in the paid version) has a link at the end of each chapter that enables you to give feedback.

2.2.2 How do I get updates for the downloads I bought at Payhip?

2.2.3 Can I upgrade from package “Ebooks” to package “Ebooks + exercises + quizzes”?

Yes. The instructions for doing so are on the homepage of this book.

2.3 I own the print version

2.3.1 Can I get a discount for a digital version?

If you bought the print version, you can get a discount for a digital version. The homepage of the print version explains how.

Alas, the reverse is not possible: you cannot get a discount for the print version if you bought a digital version.

2.3.2 Can I submit an error or see submitted errors?

On the homepage of the print version, you can submit errors and see submitted errors.

2.3.3 Is there an online list with the URLs in this book?

The homepage of the print version has a list with all the URLs that you see in the footnotes of the print version.

2.4 Notations and conventions

2.4.1 What is a type signature? Why am I seeing static types in this book?

For example, you may see:

Number.isFinite(num: number): boolean

That is called the type signature of Number.isFinite(). This notation, especially the static types number of num and boolean of the result, are not real JavaScript. The notation is borrowed from the compile-to-JavaScript language TypeScript (which is mostly just JavaScript plus static typing).

Why is this notation being used? It helps give you a quick idea of how a function works. The notation is explained in detail in “Tackling TypeScript”, but is usually relatively intuitive.

2.4.2 What do the notes with icons mean?

  Reading instructions

Explains how to best read the content.

  External content

Points to additional, external, content.


Gives a tip related to the current content.


Asks and answers a question pertinent to the current content (think FAQ).


Warns about pitfalls, etc.


Provides additional details, complementing the current content. It is similar to a footnote.


Mentions the path of a test-driven exercise that you can do at that point.


Indicates that there is a quiz for the current (part of a) chapter.