-
basic syntax
-
functions
-
object literals
-
arrays
-
regular expressions
-
prototypal inheritance
-
additions to the standard library
- Array
- forEach
- filter
- map
- reduce
- String
- trim
- JSON
- parse
- stringify
- Array
-
accessors (getters and setters)
-
additions to the standard library
- Array
- every
- indexOf
- lastIndexOf
- some
- Object
- getPrototypeOf
- create
- Function
- bind
- call
- apply
- Array
-
strict mode (increased code validation)
ES6 / ECMAScript 2015:
-
arrow functions
-
template strings
-
Promises
-
import statement
-
let and const
-
destructuring
-
for..of
-
classes
-
enhanced object literals
-
default parameter values
-
rest parameters, spread operator (ellipsis ...)
-
Map, Set
-
WeakMap, WeakSet (despite horrible name, means objects as keys)
-
additions to standard library
- Array
- from
- find, findIndex
- String
- startsWith, endsWith, includes
- repeat
- Math, Number
- Array
ES2016
- Array.includes
ES2017
- async / await
- Object.values and Object.entries
- trailing commas in parameter lists
ES2018
- Rest / Spread properties
- Promise.finally
- for await.. of async iterators
ES2019
- Array.flat and Array.flatMap
ES2020
- Promise.allSettled
- globalThis
- JavaScript Foundation
- Javascript Engine
- Interpreters and Compilers
- Babel + TypeScript
- WebAssembly
- Call Stack and Memory Heap
- Stack Overflow
- Garbage Collection
- Memory Leaks
- Single Threaded
- Javascript Runtime
- Execution Context
- Lexical Environment
- Hoisting
- Function Invocation
- arguments Keyword
- Variable Environment
- Scope Chain
- [[scope]]
- Function Scope vs Block Scope
- Global Variables
- IIFE
- this Keyword
- call(), apply(), bind()
- bind() and currying
- Context vs Scope
- Types in JavaScript
- Javascript Types
- Array.isArray()
- Pass By Value vs Pass By Reference
- Type Coercion
- Quick Note: Upcoming Videos
- Dynamic vs Static Typing
- Weakly vs Strongly Typed
- Static Typing In JavaScript
- Closures and Prototypal Inheritance
- Functions are Objects
- First Class Citizens
- Higher Order Functions
- Closures, Memory, Encapsulation
- Prototypal Inheritance
- Object Oriented Programming
- OOP and FP
- Object.create()
- Constructor Functions
- ES6 Classes
- Object.create() vs Class
- Inheritance
- Private Class Variables
- Public vs Private
- Functional Programming
- Functional Programming
- Pure Functions
- Imperative vs Declarative
- Immutability
- Higher Order Functions and Closures
- Currying
- Memoization
- Compose and Pipe
- Asynchronous JavaScript
- Promises
- ES8 - Async Await
- ES9 (ES2018)
- Job Queue
- Parallel, Sequence and Race
- ES2020: allSettled()
- ES2021: any()
- Threads, Concurrency and Parallelism
- Modules In JavaScript
- Module Pattern Pros and Cons
- CommonJS, AMD, UMD
- ES6 Modules
resources: