JavaScript in Depth
Intro
This is the best JavaScript tutorial in DEPTH, in English language, printed or online.
The JavaScript Basics section is suitable for beginners. It is concise. Pre-requisite is familarity with a scripting language such as Python, Ruby, Bash.
This tutorial is:
- Written in the most simple way you can understand.
- Standalone code examples for every concept.
- Written in a cold style. No ninja no zen no joke.
- No extraneous jargon, no design patterns, no fad.
- No framework, no library, pure standard JavaScript that runs in browser.
- In depth. Based on JavaScript language specification for correctness.
- Covers ECMAScript 2015 and updated every year with JavaScript new features.
Table of Contents
Basics
- Filename Extension
- How to Run JavaScript
- Comment
- Quote String
- Number
- Math Operators
- Assignment Operators
- Number Comparison Operators
- Boolean. true false
- Boolean Operators
- Test Equality
- Conditional. if then else
- Loop. for while do
- Array Tutorial
- Object Tutorial
Value Types
Variable
String
- String Overview
- Template String
- String Escape Sequence
- Unicode Escape Sequence
- String Operations
- Iterate String
- String Code Unit
- Count Chars in String ð
- Tagged Template String
- Regex Functions
- Convert String, Number
- String (class)
- String Constructor
- String.prototype
Properties
- Property Overview
- Order of Properties
- Property Key
- Property Dot Notation vs Bracket Notation
- Create Property
- Delete Property
- Get Set Property
- Check Property Existence
- Access Property
- List Properties
- for-in Loop ð
- Enumerable Property
- Property Attributes
- Property Descriptor
- Getter Setter Properties
Object and Inheritance
- Object Overview
- Object Type
- Test is Object Type ð
- Determine Type of Object
- Prototype and Inheritance
- Prototype Chain
- Object.prototype.isPrototypeOf
- Get Set Prototype
- Show Prototype Chain ð
- Create Object
- Object Literal Expression
- Create Object with Parent X
- Prevent Adding Property
- Deep Copy Array or Object ð
- Test Equality of Array and Object by Content ð
- Add Method to Prototype
- Object (class)
- Object Constructor
- Object.prototype
Array
- Array
- Create Array
- Sparse Array
- Array-Like Object
- Range Function for Array ð
- Test Array Equality
- Array How-To
- Array (class)
- Array Constructor
- Array.prototype
Function
- Define Function
- Arrow Function
- Function Parameters
- arguments (object)
- Function Rest Parameters
- Function Parameter Default Value
- Function Argument Destructure
- Function. Declaration vs Expression
- Closure
- Function Call, Apply, Bind
- Functional Programing
- Function Pipe ð
- Function (class)
- Function Constructor
- Function.prototype
Class
- Constructor and Class
- this (binding)
- Constructor
- prototype (property)
- new (operator)
- instanceof (operator)
- constructor (property)
- typeof, instanceof, .constructor
- class (keyword)
- Class Expression
- typeof Class
- static (keyword)
- extends (keyword)
- super (keyword)
- Define a Class Without class
Iterable
Misc
Xah Talk Show 2025-04-28 Ep649 why JavaScript Object System Sucks

Test Your JavaScript Knowledge

