JavaScript in Depth

By Xah Lee. Date: . Last updated: .

This JavaScript tutorial is:

  1. Based on JavaScript language specification for correctness.
  2. In depth.
  3. Code example for every explanation.
  4. Practical questions are covered with answers.
  5. Covers ES2015+.
  6. Beginner friendly. No front-end experience required.
  7. No framework or library are used. No coding “tricks” or “idioms”.
  8. Writen in the most simple way. Anyone can understand.
  9. Written in a cold style. No ninja zen, no jargon, just the point. No joke.

This is the best JavaScript tutorial in English language, online or printed. Support the work by patreon me at https://www.patreon.com/xahlee or buy it for offline reading. Buy Xah JavaScript Tutorial

For beginner, read JavaScript Basics section. You can start coding in 1 hour.

Variable

  1. var Order
  2. var Scope
  3. Global Variable
  4. let
  5. const
  6. Destructuring Assignment

Function

  1. Define Function
  2. Arrow Function ★
  3. Function Parameters
  4. “arguments” Object
  5. Rest Params ★
  6. Arg Default Value ★
  7. Arg Destructure ★
  8. f Declaration vs Expression
  9. Functional Programing
  10. Closure
  11. f call apply bind

Properties

  1. Property Overview
  2. Property Key
  3. Dot vs Bracket Notation
  4. Create/Delete Property
  5. Get/Set Property
  6. Check Property Existence
  7. Access Property
  8. List Properties
  9. Property Attributes
  10. Getter/Setter
  11. Property Descriptor
  12. Symbol type

Object, Inheritance

  1. Object Overview
  2. What's Object?
  3. Prototype, Inheritance
  4. Create Object
  5. Object Literal Expression {…}
  6. Get/Set Prototype
  7. Prevent Adding Property
  8. Type of Object
  9. Clone Object
  10. Equality Test of Objects
  11. Add Method to Prototype

Array

  1. Array
  2. Create Array
  3. Sparse Array
  4. Array-Like Object
  5. Array How-To

Constructor

  1. “this” binding
  2. What's Constructor?
  3. Property “prototype”
  4. Operator “new”
  5. Operator “instanceof”
  6. Property “constructor”
  7. Class

String and Character

  1. String
  2. Template String
  3. Regex Methods
  4. Source Code Encoding
  5. Unicode Escape Sequence
  6. Allowed Chars in Identifier
  7. to/from Codepoint

Iterable ★

  1. Interface
  2. Iterable
  3. Iterator
  4. Iterator Prototype
  5. for-of Loop
  6. Spread Operator
  7. Generator
  8. Generator Function

Misc

  1. Object Literal Expression
  2. Set Object
  3. Map Object
  4. Reflect

WORK IN PROGRESS:

  1. Promise
  2. Proxy
  3. How to Convert to ES2015

subscribe Xah Web Dev BlogWeb Dev

Reference

Here's references used.

Liket it? Put $5 at patreon.

Or, Buy JavaScript in Depth

Ask me question on patreon