Table of contents Preface Introduction to JavaScript ECMAScript ES6 ES2016 ES2017 ES2018 Coding style Lexical Structure Variables Types Expressions Prototypal inheritance Classes Exceptions Semicolons Quotes Template Literals Functions Arrow Functions Closures Arrays Loops Events The Event Loop Asynchronous programming and callbacks Promises Async and Await Loops and Scope Timers this Strict Mode