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 .
This tutorial is:
- Written in the most simple way you can understand.
- Standalone code examples you can run for every concept.
- Written in a cold style. No ninja no zen no joke. Every sentence counts.
- No framework, no library, no design patterns, no extraneous jargon, no fad.
- In depth. Based on JavaScript language specification for correctness.
- Covers JS2015 and updated every year with JavaScript new features.
- ๐ means it's a old and bad feature of JavaScript of 1990s, you should not use.
- ๐ means it's a user-defined function not in JS.
Table of Contents
Basic Syntax
- How to Run JavaScript
- JS: Comment
- JS: Print
- JS: Quote String
- JS: Number
- JS: Math Operators
- JS: Boolean: true, false
- JS: Test Equality
- JS: if then else
- JS: for while do Loop
- JS: Array Tutorial
- JS: Object Tutorial
Value Types
Variable
String
- JS: String Overview
- JS: Quote String
- JS: Template String
- JS: String Escape Sequence
- JS: Unicode Escape Sequence
- JS: String Operations
- JS: Iterate String
- JS: String Code Unit
- JS: Count Chars in String ๐
- JS: Tagged Template String
- JS: Regex Functions
- JS: Convert String, Number
- JS: String Object
- JS: String Constructor
- JS: String.prototype
Object and Inheritance
- JS: Object Tutorial
- JS: Object Overview
- JS: Object Type
- JS: Test is Object Type ๐
- JS: Determine Type of Object
- JS: Prototype and Inheritance
- JS: Prototype Chain
- JS: Object.prototype.isPrototypeOf
- JS: Get Set Prototype
- JS: Show Prototype Chain ๐
- JS: Create Object
- JS: Object Literal Expression
- JS: Create Object with Parent X
- JS: Prevent Adding Property
- JS: Deep Copy Array or Object ๐
- JS: Test Equality of Array and Object by Content ๐
- JS: Add Method to Prototype
- JS: Object Object
- JS: Object Constructor
- JS: Object.prototype
Array
- JS: Array Tutorial
- JS: Array
- JS: Create Array
- JS: Sparse Array
- JS: Array-Like Object
- JS: Range Function for Array ๐
- JS: Test Array Equality
- JS: Array How-To
- JS: Array Object
- JS: Array Constructor
- JS: Array.prototype
Function
- JS: Define Function
- JS: Arrow Function
- JS: Function Parameters
- JS: Function arguments Object
- JS: Function Rest Parameters
- JS: Function Parameter Default Value
- JS: Function Argument Destructure
- JS: Function. Declaration vs Expression
- JS: Closure
- JS: Function Call, Apply, Bind
- JS: Functional Programing
- JS: Function Pipe ๐
- JS: Function Object
- JS: Function Constructor
- JS: Function.prototype
Constructor, Class
- JS: thisBinding
- JS: Constructor
- JS: Property Key "prototype"
- JS: Operator โnewโ
- JS: instanceof Operator
- JS: Property Key "constructor"
- JS: Difference Between typeof, instanceof, constructor property
- JS: Class
- JS: Class Syntax
- JS: Class Expression
- JS: typeof Class
- JS: Keyword โstaticโ (static method)
- JS: Keyword โextendsโ
- JS: Keyword โsuperโ
- JS: Define a Class Without Using Keyword class
Iterable
- JS: Interface
- JS: Iterable Object
- JS: Test If Object is Iterable ๐
- JS: Iterator
- JS: Test If Object is Iterator ๐
- JS: Iterator Prototype
- JS: for-of Loop
- JS: Spread Operator (triple dots)
- JS: Generator
- JS: Generator Function
Misc
Test Your JavaScript Knowledge

