Deep JavaScript
Please support this book: buy it or donate
(Ad, please don’t block.)

1 About this book

1.1 Where is the homepage of this book?

The homepage of “Deep JavaScript” is

1.2 What is in this book?

This book dives deeply into JavaScript:

1.3 What do I get for my money?

If you buy this book, you get:

The current price is introductory. It will increase as more content is added.

1.4 How can I preview the content?

On the homepage of this book, there are extensive previews for all versions of this book.

1.5 How do I report errors?

1.6 Tips for reading

1.7 Notations and conventions

1.7.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 a 2ality blog post, but is usually relatively intuitive.

1.7.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.

1.8 Acknowledgements