Introduction
This repository was created with the intention of helping developers master their concepts in JavaScript. It is not a requirement, but a guide for future studies. It is based on an article written by Stephen Curtis and you can read it here.
🚀 Considered by GitHub as one of the top open source projects of 2018!
Community
Feel free to submit a PR by adding a link to your own recaps or reviews. If you want to translate the repo into your native language, please feel free to do so.
Table of Contents
- Call Stack
- Primitive Types
- Value Types and Reference Types
- Implicit, Explicit, Nominal, Structuring and Duck Typing
- == vs === vs typeof
- Function Scope, Block Scope and Lexical Scope
- Expression vs Statement
- IIFE, Modules and Namespaces
- Message Queue and Event Loop
- setTimeout, setInterval and requestAnimationFrame
- JavaScript Engines
- Bitwise Operators, Type Arrays and Array Buffers
- DOM and Layout Trees
- Factories and Classes
- this, call, apply and bind
- new, Constructor, instanceof and Instances
- Prototype Inheritance and Prototype Chain
- Object.create and Object.assign
- map, reduce, filter
- Pure Functions, Side Effects, State Mutation and Event Propagation
- Closures
- High Order Functions
- Recursion
- Collections and Generators
- Promises
- async/await
- Data Structures
- Expensive Operation and Big O Notation
- Algorithms
- Inheritance, Polymorphism and Code Reuse
- Design Patterns
- Partial Applications, Currying, Compose and Pipe
- Clean Code
1. Call Stack
Reference
Articles
- Understanding Javascript Call Stack, Event Loops — Gaurav Pandvia
- Understanding the JavaScript Call Stack — Charles Freeborn
- Javascript: What Is The Execution Context? What Is The Call Stack? — Valentino Gagliardi
- What is the JS Event Loop and Call Stack? — Jess Telford
- Understanding Execution Context and Execution Stack in Javascript — Sukhjinder Arora
- How JavaScript Works Under The Hood: An Overview of JavaScript Engine, Heap and, Call Stack — Bipin Rajbhar
- The JS Call stack Explained in 9 minutes - Colt Steel (YouTube)
Videos
- Javascript: the Call Stack explained — Coding Blocks India
- The JS Call Stack Explained In 9 Minutes — Colt Steele
- What is the Call Stack? — Eric Traub
- The Call Stack — Kevin Drumm
- Understanding JavaScript Execution — Codesmith
- The Ultimate Guide to Execution Contexts, Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis
- What the heck is the event loop anyway? — Philip Roberts
- La PILA DE EJECUCIÓN (Call Stack) de JavaScript — La Cocina del Código
- How JavaScript Code is executed? ❤️& Call Stack — Akshay Saini
- Call Stacks - CS50
- Learn the JavaScript Call Stack - codecupdev
- JavaScript Functions and the Call Stack | How does the Call stack work - Chidre'sTechTutorials
2. Primitive Types
Reference
Articles
- Primitive and Non-primitive data-types in JavaScript - GeeksforGeeks
- Javascript variables (Beginner thinking)
- How numbers are encoded in JavaScript — Dr. Axel Rauschmayer
- What You Need to Know About JavaScript Number Type — Max Wizard K
- What Every JavaScript Developer Should Know About Floating Point Numbers — Chewxy
- The Secret Life of JavaScript Primitives — Angus Croll
- Primitive Types — Flow
- (Not) Everything in JavaScript is an Object — Daniel Li
- JavaScript data types and data structures — MDN
- Diving Deeper in JavaScripts Objects — Arfat Salman
- The differences between Object.freeze() vs Const in JavaScript — Bolaji Ayodeji
- Object to primitive conversion — JavaScript.info
- Methods of primitives - Javascript.info
Videos
- JavaScript Reference vs Primitive Types — Academind
- JavaScript Primitive Types — Simon Sez IT
- Value Types and Reference Types in JavaScript — Programming with Mosh
- JavaScript Primitive Data Types — Avelx
- Everything you never wanted to know about JavaScript numbers — Bartek Szopka
- What are variables in Javascript? — JS For Everyone
- TIPOS DE DATOS PRIMITIVOS en JAVASCRIPT - La Cocina del Código
- Data Type in JavaScript - ScholarHat
3. Value Types and Reference Types
Articles
- Explaining Value vs. Reference in Javascript — Arnav Aggarwal
- Primitive Types & Reference Types in JavaScript — Bran van der Meer
- Value Types, Reference Types and Scope in JavaScript — Ben Aston
- Back to roots: JavaScript Value vs Reference — Miro Koczka
- Grasp “By Value” and “By Reference” in JavaScript — Léna Faure
- JavaScript Reference and Copy Variables — Vítor Capretz
- JavaScript Primitive vs Reference Values
- JavaScript by Reference vs. by Value — nrabinowitz
- JavaScript Interview Prep: Primitive vs. Reference Types — Mike Cronin
- forEach method in JavaScript - A Comprehensive Guide
- JavaScript map vs. forEach: When to Use Each One - Sajal Soni
Videos
- Javascript Pass by Value vs Pass by Reference — techsith
- JavaScript Value vs Reference Types — Programming with Mosh
- VALORES vs REFERENCIAS en JAVASCRIPT - La Cocina del Código
- JavaScript - Reference vs Primitive Values/ Types - Academind
- Value Types and Reference Types in JavaScript - Programming with Mosh
4. Implicit, Explicit, Nominal, Structuring and Duck Typing
Articles
- What you need to know about Javascript's Implicit Coercion — Promise Tochi
- JavaScript Type Coercion Explained — Alexey Samoshkin
- Javascript Coercion Explained — Ben Garrison
- What exactly is Type Coercion in Javascript? - Stack Overflow
Videos
- == ? === ??? ...#@^% - Shirmung Bielefeld
- Coercion in Javascript - Hitesh Choudhary
- JavaScript Questions: What is Coercion? - Steven Hancock
- Typing: Static vs Dynamic, Weak vs. Strong - Codexpanse
- EL SISTEMA de TIPOS DE JAVASCRIPT - La Cocina del Código
- Duck Typing in Javascript - Techmaker Studio
Books
5. == vs === vs typeof
Articles
- JavaScript Double Equals vs. Triple Equals — Brandon Morelli
- Should I use === or == equality comparison operator in JavaScript? — Panu Pitkamaki
- Why Use the Triple-Equals Operator in JavaScript? — Louis Lazaris
- What is the difference between == and === in JavaScript? — Craig Buckler
- Why javascript's typeof always return "object"? — Stack Overflow
- Checking Types in Javascript — Toby Ho
- How to better check data types in JavaScript — Webbjocke
- Checking for the Absence of a Value in JavaScript — Tomer Aberbach
- Difference Between == and === in Javascript
- Difference between == and === in JavaScript — GeeksforGeeks
- === vs == Comparision in JavaScript — FreeCodeCamp
Videos
- JavaScript - The typeof operator — Java Brains
- Javascript typeof operator — DevDelight
- JavaScript "==" VS "===" — Web Dev Simplified
- === vs == in javascript - Hitesh Choudhary
- The typeof operator in JS - CodeVault
6. Function Scope, Block Scope and Lexical Scope
Books
Articles
- JavaScript Functions — Understanding The Basics — Brandon Morelli
- Var, Let, and Const – What's the Difference?
- Functions in JavaScript - Deepa Pandey
- Emulating Block Scope in JavaScript — Josh Clanton
- The Difference Between Function and Block Scope in JavaScript — Joseph Cardillo
- Function Scopes and Block Scopes in JavaScript — Samer Buna
- Understanding Scope and Context in JavaScript — Ryan Morr
- JavaScript Scope and Closures — Zell Liew
- Understanding Scope in JavaScript — Wissam Abirached
- Understanding Scope in JavaScript ― Hammad Ahmed
- When to use a function declaration vs. a function expression ― Amber Wilkie
- A JavaScript Fundamentals Cheat Sheet: Scope, Context, and “this” ― Alexandra Fren
- Functions / Function scope ― MDN
Videos
- What Makes Javascript Weird ... and Awesome pt. 4 — LearnCode.academy
- Variable Scope in JavaScript — Kirupa Chinnathambi
- JavaScript Block Scope and Function Scope — mmtuts
- What the Heck is Lexical Scope? — NWCalvank
- Variable Scope — Steve Griffith
- Javascript Tutorials for Beginners — Mosh Hemadani
- JavaScript Block scope vs Function scope - nivek
- Lexical scoping in javascript - Hitesh Choudhary
7. Expression vs Statement
Articles
-
Function Expressions vs Function Declarations — Paul Wilkins
-
JavaScript Function — Declaration vs Expression — Ravi Roshan
-
Function Declarations vs. Function Expressions — Mandeep Singh
-
Function Declarations vs. Function Expressions — Anguls Croll
-
📜 Function Expressions vs Function Declarations — Paul Wilkins
-
📜 JavaScript Function — Declaration vs Expression — Ravi Roshan
-
📜 Function Declarations vs. Function Expressions — Mandeep Singh
-
📜 Function Declarations vs. Function Expressions — Anguls Croll
Videos
- Expressions vs. Statements in JavaScript — Hexlet
- JavaScript - Expression vs. Statement — WebTunings
- Javascript Function Expression Vs Declaration For Beginners — Dev Material
- The difference between an expression and a statement in JavaScript
- Expression in javascript | Statement in javascript - Sathelli Srikanth
8. IIFE, Modules and Namespaces
Reference
Articles
- Mastering Immediately-Invoked Function Expressions ― Chandra Gundamaraju
- JavaScript Immediately Invoked Function Expression — javascripttutorial.net
- Do ES6 Modules make the case of IIFEs obsolete?
- A 10 minute primer to JavaScript modules, module formats, module loaders and module bundlers ― Jurgen Van de Moere
- Modules ― Exploring JS
- ES modules: A cartoon deep-dive — Lin Clark
- Understanding ES6 Modules — Craig Buckler
- An overview of ES6 Modules in JavaScript — Brent Graham
- ES6 Modules in Depth — Nicolás Bevacqua
- ES6 modules, Node.js and the Michael Jackson Solution — Alberto Gimeno
- JavaScript Modules: A Beginner’s Guide — Preethi Kasireddy
- Using JavaScript modules on the web — Addy Osmani & Mathias Bynens
- IIFE: Immediately Invoked Function Expressions — Parwinder
- Javascript Module Bundlers — Vanshu Hassija
Videos
- Immediately Invoked Function Expression - Beau teaches JavaScript — freeCodeCamp
- Understanding JavaScript IIFE — Sheo Narayan
- JavaScript Modules: ES6 Import and Export — Kyle Robinson
- ES6 - Modules — Ryan Christiani
- ES6 Modules in the Real World — Sam Thorogood
- ES6 Modules — TempleCoding
- JavaScript IIFE (Immediately Invoked Function Expressions) — Steve Griffith
9. Message Queue and Event Loop
Articles
- JavaScript Event Loop Explained — Anoop Raveendran
- The JavaScript Event Loop: Explained — Erin Sweson-Healey
- Understanding JS: The Event Loop — Alexander Kondov
- The JavaScript Event Loop — Flavio Copes
- Tasks, microtasks, queues and schedules — Jake Archibald
- Visualising the JavaScript Event Loop with a Pizza Restaurant analogy — Priyansh Jain
- JavaScript Visualized: Event Loop — Lydia Hallie
Videos
- What the heck is the event loop anyway? | JSConf EU — Philip Roberts
- JavaScript Event Loop — ComScience Simplified
- I'm stuck in an Event Loop — Philip Roberts
- In The Loop - Jake Archibald | JSConf.Asia 2018
- Desmitificando el Event Loop (Spanish)
- Callbacks, Sincrono, Assíncrono e Event Loop (PT-BR)
- JavaScript Event Loop: How it Works and Why it Matters in 5 Minutes - James Q Quick
10. setTimeout, setInterval and requestAnimationFrame
Articles
- Javascript setTimeout - All you need to know
- setTimeout and setInterval — JavaScript.Info
- Why not to use setInterval — Akanksha Sharma
- setTimeout VS setInterval — Develoger
- Using requestAnimationFrame — Chris Coyier
- Understanding JavaScript's requestAnimationFrame() — JavaScript Kit
- Handling time intervals in JavaScript - Amit Merchant
- Debounce – How to Delay a Function in JavaScript - Ondrej Polesny
Videos
- Javascript: How setTimeout and setInterval works — Coding Blocks India
- TRUST ISSUES with setTimeout() — Akshay Saini
- setTimeout and setInterval in JavaScript — techsith
- JavaScript Timers — Steve Griffith
- JavaScript setTimeOut and setInterval Explained — Theodore Anderson
11. JavaScript Engines
Articles
- Is javascript compiled or interpreted language?
- JavaScript Engines — Jen Looper
- Understanding How the Chrome V8 Engine Translates JavaScript into Machine Code — DroidHead
- Understanding V8’s Bytecode — Franziska Hinkelmann
- A Brief History of Google’s V8 Javascript Engine — Clair Smith
- JavaScript essentials: why you should know how the engine works - Rainer Hahnekamp
- JavaScript engine fundamentals: Shapes and Inline Caches
- JavaScript engine fundamentals: optimizing prototypes
- How V8 optimizes array operations
- JavaScript Internals: JavaScript engine, Run-time environment & setTimeout Web API — Rupesh Mishra
Videos
- JavaScript Engines: The Good Parts™ — Mathias Bynens & Benedikt Meurer
- JS Engine EXPOSED 🔥 Google's V8 Architecture 🚀 | Namaste JavaScript Ep. 16 - Akshay Saini
- How JavaScript Code is executed? How Javascript works behind the scenes
- Understanding the V8 JavaScript Engine - freeCodeCamp Talks
- JavaScript Under The Hood - JavaScript Engine Overview - Traversy Media
12. Bitwise Operators, Type Arrays and Array Buffers
Articles
- Programming with JS: Bitwise Operations — Alexander Kondov
- Using JavaScript’s Bitwise Operators in Real Life — ian m
- JavaScript Bitwise Operators — w3resource
- Bitwise Operators in Javascript — Joe Cha
- A Comprehensive Primer on Binary Computation and Bitwise Operators in Javascript — Paul Brown
- How can I understand Bitwise operation in JavaScript?
Videos
- JavaScript Bitwise Operators — Programming with Mosh
- Bitwise Operators and WHY we use them — Alex Hyett
- JS Bitwise Operators and Binary Numbers — Steve Griffith - Prof3ssorSt3v3
- Deep Dive into Blobs, Files, and ArrayBuffers — Steve Griffith - Prof3ssorSt3v3
13. DOM and Layout Trees
Books
Articles
- How To Understand and Modify the DOM in JavaScript — Tania Rascia
- What’s the Document Object Model, and why you should know how to use it — Leonardo Maldonado
- JavaScript DOM Tutorial with Example — Guru99
- What is the DOM? — Chris Coyier
- Traversing the DOM with JavaScript — Zell Liew
- DOM Tree
- How to traverse the DOM in Javascript — Vojislav Grujić
- Render Tree Construction — Ilya Grigorik
- What exactly is the DOM?
- JavaScript DOM
- Traversing the Dom with Javascript - Steve Griffith (YouTube)
Videos
- JavaScript DOM — The Net Ninja
- JavaScript DOM Crash Course — Traversy Media
- JavaScript DOM Manipulation Methods — Web Dev Simplified
- JavaScript DOM Traversal Methods — Web Dev Simplified
14. Factories and Classes
Articles
- How To Use Classes in JavaScript — Tania Rascia
- Javascript Classes — Under The Hood — Majid
- Better JavaScript with ES6, Pt. II: A Deep Dive into Classes ― Peleke Sengstacke
- Understand the Factory Design Pattern in Plain JavaScript — Aditya Agarwal
- Factory Functions in JavaScript — Josh Miller
- The Factory Pattern in JS ES6 — SnstsDev
- Class vs Factory function: exploring the way forward — Cristi Salcescu
- How ES6 classes really work and how to build your own — Robert Grosse
- Understanding
superin JavaScript - An Easy Guide To Understanding Classes In JavaScript
Videos
- JavaScript Factory Functions — Programming with Mosh
- Factory Functions in JavaScript — Fun Fun Function
- Javascript Tutorial Function Factories — Crypto Chan
15. this, call, apply and bind
Reference
Articles
- Grokking call(), apply() and bind() methods in JavaScript — Aniket Kudale
- JavaScript’s Apply, Call, and Bind Methods are Essential for JavaScript Professionals — Richard Bovell
- Javascript: call(), apply() and bind() — Omer Goldberg
- The difference between call / apply / bind — Ivan Sifrim
- What the hack is call, apply, bind in JavaScript — Ritik
- Mastering 'this' in JavaScript: Callbacks and bind(), apply(), call() — Michelle Gienow
- JavaScript’s apply, call, and bind explained by hosting a cookout — Kevin Kononenko
- How AND When to use bind, call, and apply in Javascript — Eigen X
- Let me explain to you what is
this. (Javascript) — Jason Yu - Understanding the “this” Keyword in JavaScript — Pavan
- How to understand the keyword this and context in JavaScript — Lukas Gisder-Dubé
- What the heck is this in Javascript? — Hridayesh Sharma
- This and Bind In Javascript — Brian Barbour
- 3 Techniques for Maintaining Your Sanity Using "This" in JavaScript — Carl
- Mastering the JavaScript "this" Keyword — Aakash Srivastav
- This binding in JavaScript – 4. New binding — Spyros Argalias
- A quick intro to 'this' in JavaScript — Natalie Smith
- Explaining JavaScript 'this' to my cat — Andrey K
- A conversation with the 'this' keyword in Javascript — Karen Efereyan
- What are call(), apply() and bind() in JavaScript — Amitav Mishra
- Understanding 'this' binding in JavaScript — Yasemin Cidem
- Top 7 tricky questions of 'this' keyword
Videos
- JavaScript call, apply and bind — techsith
- JavaScript Practical Applications of Call, Apply and Bind functions— techsith
- JavaScript (call, bind, apply) — curious aatma
- Understanding Functions and 'this' In The World of ES2017 — Bryan Hughes
- bind and this - Object Creation in JavaScript - FunFunFunction
- JS Function Methods call(), apply(), and bind() — Steve Griffith
- call, apply and bind method in JavaScript — Akshay Saini
16. new, Constructor, instanceof and Instances
Articles
- JavaScript For Beginners: the ‘new’ operator — Brandon Morelli
- Let’s demystify JavaScript’s ‘new’ keyword — Cynthia Lee
- Constructor, operator "new" — JavaScript.Info
- Understanding JavaScript Constructors — Faraz Kelhini
- Use Constructor Functions — Openclassrooms
- Beyond
typeofandinstanceof: simplifying dynamic type checks — Dr. Axel Rauschmayer - Function and Object, instances of each other — Kiro Risk
- JavaScript instanceof operator
17. Prototype Inheritance and Prototype Chain
Reference
Articles
- Javascript : Prototype vs Class — Valentin PARSY
- JavaScript engine fundamentals: optimizing prototypes — Mathias Bynens
- JavaScript Prototype — NC Patro
- Prototypes in JavaScript — Rupesh Mishra
- Prototype in JavaScript: it’s quirky, but here’s how it works — Pranav Jindal
- Understanding JavaScript: Prototype and Inheritance — Alexander Kondov
- Understanding Classes (ES5) and Prototypal Inheritance in JavaScript — Hridayesh Sharma
- prototype, proto and Prototypal inheritance in JavaScript — Varun Dey
- Prototypal Inheritance — JavaScript.Info
- How To Work with Prototypes and Inheritance in JavaScript — Tania Rascia
- Master JavaScript Prototypes & Inheritance — Arnav Aggarwal
- JavaScript’s Prototypal Inheritance Explained Using CSS — Nash Vail
- Prototypal Inheritance in JavaScript — Jannis Redmann
- Demystifying ES6 Classes And Prototypal Inheritance ― Neo Ighodaro
- Intro To Prototypal Inheritance — Dharani Jayakanthan
- Let’s Build Prototypal Inheritance in JS — var-che
- Objects, Prototypes and Classes in JavaScript — Atta
- The magical world of JavaScript prototypes — Belén
- Understanding Prototypal Inheritance In JavaScript — Lawrence Eagles
- Objects and Prototypes in JavaScript — Irena Popova
Videos
- Javascript Prototype Inheritance — Avelx
- JavaScript Prototype Inheritance Explained pt. I — techsith
- JavaScript Prototype Inheritance Explained pt. II — techsith
- JavaScript Prototype Inheritance Explained — Kyle Robinson
- Advanced Javascript - Prototypal Inheritance In 1 Minute
- An Overview Of Classical Javascript Classes and Prototypal Inheritance — Pentacode
- Object Oriented JavaScript - Prototype — The Net Ninja
- Prototype in JavaScript — kudvenkat
- JavaScript Using Prototypes — O'Reilly
- A Beginner's Guide to Javascript's Prototype — Tyler Mcginnis
- Prototypes in Javascript - p5.js Tutorial — The Coding Train
Books
- You Don't Know JS, 1st Edition: this & Object Prototypes — Kyle Simpson
- The Principles of Object-Oriented JavaScript - Nicholas C. Zakas
18. Object.create and Object.assign
Reference
Articles
- Object.create in JavaScript — Rupesh Mishra
- Object.create(): the New Way to Create Objects in JavaScript — Rob Gravelle
- Basic Inheritance with Object.create — Joshua Clanton
- Object.create() In JavaScript — GeeksforGeeks
- Understanding the difference between Object.create() and the new operator — Jonathan Voxland
- JavaScript Object Creation: Patterns and Best Practices — Jeff Mott
- Javascript hasOwnProperty: A Powerful Property Checking tool
- Dealing With Objects in JavaScript With Object.assign, Object.keys and hasOwnProperty
- Copying Objects in JavaScript ― Orinami Olatunji
- JavaScript: Object.assign() — Thiago S. Adriano
- How to deep clone a JavaScript Object — Flavio Copes
- Object.create(): When and Why to Use — VZing
Videos
19. map, reduce, filter
Articles
- JavaScript Functional Programming — map, filter and reduce — Bojan Gvozderac
- Learn map, filter and reduce in Javascript — João Miguel Cunha
- JavaScript’s Map, Reduce, and Filter — Dan Martensen
- How to Use Map, Filter, & Reduce in JavaScript — Peleke Sengstacke
- JavaScript — Learn to Chain Map, Filter, and Reduce — Brandon Morelli
- Javascript data structure with map, reduce, filter and ES6 — Deepak Gupta
- Understanding map, filter and reduce in Javascript — Luuk Gruijs
- Functional Programming in JS: map, filter, reduce (Pt. 5) — Omer Goldberg
- JavaScript: Map, Filter, Reduce — William S. Vincent
- Arrow Functions: Fat and Concise Syntax in JavaScript — Kyle Pennell
- JavaScript: Arrow Functions for Beginners — Brandon Morelli
- When (and why) you should use ES6 arrow functions — and when you shouldn’t — Cynthia Lee
- JavaScript — Learn & Understand Arrow Functions — Brandon Morelli
- (JavaScript )=> Arrow functions — sigu
- Javascript.reduce() — Paul Anderson
- Why you should replace forEach with map and filter in JavaScript — Roope Hakulinen
- Simplify your JavaScript – Use .map(), .reduce(), and .filter() — Etienne Talbot
- JavaScript’s Reduce Method Explained By Going On a Diet — Kevin Kononenko
- Difference between map, filter and reduce in JavaScript — Amirata Khodaparast
- Map⇄Filter⇄Reduce↻ — ashay mandwarya
- Finding Your Way With .map() — Brandon Wozniewicz
- How to write your own map, filter and reduce functions in JavaScript — Hemand Nair
- How to Manipulate Arrays in JavaScript — Bolaji Ayodeji
- How to simplify your codebase with map(), reduce(), and filter() in JavaScript — Alex Permyakov
- .map(), .filter(), and .reduce() — Andy Pickle
- Map/Filter/Reduce Crash Course — Chris Achard
- Map, Filter and Reduce – Animated — JavaScript Teacher
- Map, Filter, Reduce and others Arrays Iterators You Must Know to Become an Algorithms Wizard — Mauro Bono
- How to Use JavaScript’s .map, .filter, and .reduce — Avery Duffin
- Javascript performance test - for vs for each vs (map, reduce, filter, find) — Deepak Gupta
- Using .map(), .filter() and .reduce() properly — Sasanka Kudagoda
- Mastering the JavaScript Reduce method ✂️ — sanderdebr
- JavaScript Map – How to Use the JS .map() Function (Array Method) — FreeCodeCamp
Videos
- Map, Filter and Reduce — Lydia Hallie
- Map, Filter and Reduce - Akshaay Saini
- Functional JavaScript: Map, forEach, Reduce, Filter — Theodore Anderson
- JavaScript Array superpowers: Map, Filter, Reduce (part I) — Michael Rosata
- JavaScript Array superpowers: Map, Filter, Reduce (part 2) — Michael Rosata
- JavaScript Higher Order Functions - Filter, Map, Sort & Reduce — Epicop
- [Array Methods 2/3] .filter + .map + .reduce — CodeWithNick
- Arrow functions in JavaScript - What, Why and How — Fun Fun Function
- Learning Functional Programming with JavaScript — Anjana Vakil - JSUnconf
- Map - Parte 2 JavaScript - Fun Fun Function
- Reduce basics - Part 3 of FP in JavaScript - Fun Fun Function
- Reduce Advanced - Part 4 of FP in JavaScript - Fun Fun Function
- reduce Array Method | JavaScript Tutorial - Florin Pop
- map Array Method | JavaScript Tutorial - Florin Pop
- Different array methods in 1 minute | Midudev (Spanish)
20. Pure Functions, Side Effects, State Mutation and Event Propagation
Articles
- Javascript and Functional Programming — Pure Functions — Omer Goldberg
- Master the JavaScript Interview: What is a Pure Function? — Eric Elliott
- JavaScript: What Are Pure Functions And Why Use Them? — James Jeffery
- Pure functions in JavaScript — @nicoespeon
- Functional Programming: Pure Functions — Arne Brasseur
- Making your JavaScript Pure — Jack Franklin
- Arrays, Objects and Mutations — Federico Knüssel
- The State of Immutability — Maciej Sikora
- Hablemos de Inmutabilidad — Kike Sanchez
- How to deal with dirty side effects in your pure functional JavaScript — James Sinclair
- Preventing Side Effects in JavaScript — David Walsh
- JavaScript: Pure Functions — William S. Vincent
- Functional programming paradigms in modern JavaScript: Pure functions — Alexander Kondov
- Understanding Javascript Mutation and Pure Functions — Chidume Nnamdi
- Functional-ish JavaScript — Daniel Brain
- Event Propagation — MDN
- Event Propagation — Bubbling and capturing
Videos
- Pure Functions — Hexlet
- Pure Functions - Functional Programming in JavaScript — Paul McBride
- JavaScript Pure Functions — Seth Alexander
- JavaScript Pure vs Impure Functions Explained — Theodore Anderson
- Pure Functions - Programação Funcional: Parte 1 - Fun Fun Function
- Event Propagation - JavaScript Event Bubbling and Propagation - Steve Griffith
21. Closures
Reference
Articles
- I never understood JavaScript closures — Olivier De Meulder
- Understand JavaScript Closures With Ease — Richard Bovell
- Understanding JavaScript Closures — Codesmith
- Understand Closures in JavaScript — Brandon Morelli
- A simple guide to help you understand closures in JavaScript — Prashant Ram
- Understanding JavaScript Closures: A Practical Approach — Paul Upendo
- Understanding JavaScript: Closures — Alexander Kondov
- How to use JavaScript closures with confidence — Léna Faure
- JavaScript closures by example — tyler
- JavaScript — Closures and Scope — Alex Aitken
- Discover the power of closures in JavaScript — Cristi Salcescu
- Getting Closure — RealLifeJS
- Closure, Currying and IIFE in JavaScript — Ritik
- Understanding Closures in JavaScript — Sukhjinder Arora
- A basic guide to Closures in JavaScript — Parathan Thiyagalingam
- Closures: Using Memoization — Brian Barbour
- A Brief Introduction to Closures and Lexical Scoping in JavaScript — Ashutosh K Singh
- Demystify Closures — stereobooster
- Scopes and Closures - JavaScript Concepts — Agney Menon
- Understanding Closures in JavaScript — Matt Popovich
- whatthefuck.is · A Closure - Dan Abramov
- Closures in JavaScript can... - Brandon LeBoeuf
- Do you know Closures - Mohamed Khaled
Videos
- JavaScript The Hard Parts: Closure, Scope & Execution Context - Codesmith
- Namaste Javascript by Akshay Saini
- Javascript Closure — techsith
- Closures — Fun Fun Function
- Closures in JavaScript — techsith
- JavaScript Closures 101: What is a closure? — JavaScript Tutorials
- Closures — freeCodeCamp
- JavaScript Closures — CodeWorkr
- Closures in JS - Akshay Saini
- CLOSURES en JavaScript: Qué son y cómo funcionan - Carlos Azaustre
- Learn Closures In 7 Minutes - Web Dev Simplified
22. High Order Functions
Books
Articles
- Higher-Order Functions in JavaScript — M. David Green
- Higher Order Functions: Using Filter, Map and Reduce for More Maintainable Code — Guido Schmitz
- First-class and Higher Order Functions: Effective Functional JavaScript — Hugo Di Francesco
- Higher Order Functions in JavaScript — John Hannah
- Just a reminder on how to use high order functions — Pedro Filho
- Understanding Higher-Order Functions in JavaScript — Sukhjinder Arora
- Higher Order Functions - A pragmatic approach — emmanuel ikwuoma
Videos
- JavaScript Higher Order Functions & Arrays — Traversy Media
- Higher Order Functions — Fun Fun Function
- Higher Order Functions in Javascript — Raja Yogan
- Higher Order Iterators in JavaScript — Fun Fun Function
- Higher Order Functions in JavaScript — The Coding Train
- Part 1: An Introduction to Callbacks and Higher Order Functions - Codesmith
- Part 2: Understanding Why We Need Higher Order Functions - Codesmith
- Higher-Order Functions ft. Functional Programming - Akshay Saini
23. Recursion
Articles
- Recursion in JavaScript — Kevin Ennis
- Understanding Recursion in JavaScript — Zak Frisch
- Learn and Understand Recursion in JavaScript — Brandon Morelli
- Recursion in Functional JavaScript — M. David Green
- Programming with JS: Recursion — Alexander Kondov
- Anonymous Recursion in JavaScript — simo
- Recursion, iteration and tail calls in JS — loverajoel
- What is Recursion? A Recursive Function Explained with JavaScript Code Examples — Nathan Sebhastian
- Intro to Recursion — Brad Newman
- Accio Recursion!: Your New Favorite JavaScript Spell — Leanne Cabey
- Recursion Explained (with Examples) — Christina
Videos
- Recursion In JavaScript — techsith
- Recursion — Fun Fun Function
- Recursion and Recursive Functions — Hexlet
- Recursion: Recursion() — JS Monthly — Lucas da Costa
- Recursive Function in JavaScript — kudvenkat
- What on Earth is Recursion? — Computerphile
- Javascript Tutorial 34: Introduction To Recursion — codedamn
- Recursion, Iteration, and JavaScript: A Love Story | JSHeroes 2018 — Anjana Vakil
- Recursion crash course - Colt Steele
- What Is Recursion - In Depth - Web Dev Simplified
24. Collections and Generators
Reference
Articles
- ES6 In Depth: Collections — Jason Orendorff
- ES6 Collections: Using Map, Set, WeakMap, WeakSet — Kyle Pennell
- ES6 WeakMaps, Sets, and WeakSets in Depth — Nicolás Bevacqua
- Map, Set, WeakMap and WeakSet — JavaScript.Info
- Maps in ES6 - A Quick Guide — Ben Mildren
- ES6 — Set vs Array — What and when? — Maya Shavin
- ES6 — Map vs Object — What and when? — Maya Shavin
- Array vs Set vs Map vs Object — Real-time use cases in Javascript (ES6/ES7) — Rajesh Babu
- How to create an array of unique values in JavaScript using Sets — Claire Parker-Jones
- What You Should Know About ES6 Maps — Just Chris
- ES6 Maps in Depth — Nicolás Bevacqua
- What are JavaScript Generators and how to use them — Vladislav Stepanov
- Understanding JavaScript Generators With Examples — Arfat Salman
- The Basics of ES6 Generators — Kyle Simpson
- An Introduction to JavaScript Generators — Alice Kallaugher
Videos
- JavaScript ES6 / ES2015 Set, Map, WeakSet and WeakMap — Traversy Media
- JavaScript ES6 / ES2015 - [11] Generators - Traversy Media
- The Differences between ES6 Maps and Sets — Steve Griffith
- Javascript Generators - THEY CHANGE EVERYTHING - ES6 Generators Harmony Generators — LearnCode.academy
25. Promises
Reference
Articles
- JavaScript Promises for Dummies ― Jecelyn Yeen
- Understanding promises in JavaScript — Gokul N K
- Master the JavaScript Interview: What is a Promise? — Eric Elliott
- An Overview of JavaScript Promises — Sandeep Panda
- How to use Promises in JavaScript — Prashant Ram
- Implementing Promises In JavaScript — Maciej Cieslar
- JavaScript: Promises explained with simple real life analogies — Shruti Kapoor
- Promises for Asynchronous Programming — Exploring JS
- JavaScript Promises Explained By Gambling At A Casino — Kevin Kononenko
- ES6 Promises: Patterns and Anti-Patterns — Bobby Brennan
- A Simple Guide to ES6 Promises — Brandon Morelli
- The ES6 Promises — Manoj Singh Negi
- ES6 Promises in Depth — Nicolás Bevacqua
- Playing with Javascript Promises: A Comprehensive Approach — Rajesh Babu
- How to Write a JavaScript Promise — Brandon Wozniewicz
- A Coding Writer’s Guide: An Introduction To ES6 Promises — Andrew Ly
- Understanding Promises in JavaScript — Chris Noring
- Converting callbacks to promises — Zell Liew
- JavaScript Promises: Zero To Hero Plus Cheat Sheet — Joshua Saunders
- Promises - JavaScript concepts — Agney Menon
- Javascript
Promise101 — Igor Irianto - Simplify JavaScript Promises — Sunny Singh
- The Lowdown on Promises — Aphinya Dechalert
- JavaScript Visualized: Promises & Async/Await — Lydia Hallie
- Promises in JavaScript — Peter Klingelhofer
- Best Practices for ES6 Promises — Basti Ortiz
- Lo que debemos saber de EScript 2020 — Kike Sanchez
- Promise Basics - javascript.info
- The Complete JavaScript Promise Guide
- Promise Chaining - javascript.info
Videos
- Let's Learn ES6 - Promises — Ryan Christiani
- JavaScript ES6 / ES2015 Promises — Traversy Media
- Promises — Fun Fun Function
- Error Handling Promises in JavaScript — Fun Fun Function
- Promises Part 1 - Topics of JavaScript/ES6 — The Coding Train
- JavaScript Promise in 100 Seconds
- JavaScript Promise in 9 Minutes
- JavaScript Promises In 10 Minutes — Web Dev Simplified
- Promises | Ep 02 Season 02 - Namaste JavaScript - Akshay Saini