JavaScript in Depth

By Xah Lee. Date: . Last updated: .

This tutorial is:

  1. In depth. Based on JavaScript language specification for correctness.
  2. Standalone Code example for every paragraph.
  3. Covers ES2015+.
  4. No framework, no library, no design patterns jargon.
  5. Writen in the most simple way you can understand.
  6. Written in a cold style. No ninja no zen no joke.

Patreon me at https://www.patreon.com/xahlee or buy it for offline reading. Buy Xah JavaScript Tutorial

Xah Web Dev Blog

JavaScript Basics

  1. JavaScript Basics
  2. true, false
  3. Operators
  4. Branch Control
  5. Loop
  6. Array Basics
  7. Object Basics
  8. RegExp Basics

JS Variable

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

JS Function

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

JS Object Property

  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

JS Object and Inheritance

  1. Object Overview
  2. Object Type
  3. Prototype and Inheritance
  4. Create Object
  5. Object Literal Expression
  6. Create Object with Parent X
  7. Get/Set Prototype
  8. Prevent Adding Property
  9. Determine Type of Object
  10. Clone Object
  11. Test Object Equality
  12. Add Method to Prototype
  13. Object Object
  14. Object.prototype

JS Array

  1. Understand JS Array
  2. Create Array
  3. Sparse Array
  4. Array-Like Object
  5. Array How-To
  6. Array Object
  7. Array.prototype

JS Constructor/Class

  1. “this” Binding
  2. What's Constructor?
  3. Property Key "prototype"
  4. Operator “new”
  5. Operator “instanceof”
  6. Property Key “constructor”
  7. Class
  8. Keyword “extends”
  9. Keyword “super”

JS String

  1. String Overview
  2. Template String
  3. Char, Code Unit, Code Point
  4. String Escape Sequence
  5. Unicode Escape Sequence
  6. String to Number
  7. Encode URL, Escape String
  8. Format Number
  9. Source Code Encoding
  10. Allowed Characters in Identifier
  11. String Object
  12. String.prototype

Character Topic

  1. Character, Code Unit, Code Point
  2. Convert Character To/From Codepoint
  3. String.fromCodePoint
  4. String.fromCharCode
  5. String.prototype.charAt
  6. String.prototype.charCodeAt
  7. String.prototype.codePointAt
  8. Convert Decimal/Hexadecimal
  9. Unicode Escape Sequence

JS 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
  5. Try Catch Throw Finally

draft

  1. Import/Export
  2. Promise
  3. Proxy
  4. How to Convert to ES2015

More Misc

  1. ES2015 Features
  2. How to Convert ES5 to ES2015
  3. Style Guide
  4. Semicolon Rules
  5. Exclamation Before Function
  6. How to Determine Strict Mode?
  7. x.y.z Associativity, Right or Left?
  8. Method Chaining, Function Composition
  9. Random Number, Range, Integer, Element
  10. Timing JS Code
  11. Range Function for Array
  12. Random Array Element, Randomize Array
  13. Tagged Template String
  14. String to Number
  15. Format Number

Reference

Here's references used.

Liket it? Put $5 at patreon.

Or, Buy JavaScript in Depth

If you have a question, put $5 at patreon and message me.

Web Dev Tutorials

  1. HTML
  2. Visual CSS
  3. JS in Depth
  4. JS Reference
  5. DOM
  6. SVG
  7. Web Dev Blog