33 Concepts Every JavaScript Developer Should Know
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 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.
All the translations for this repo will be listed below:
- Shqip (Albanian) β Eldrin Ereqi
- Ψ§ΩΩΩΨΉΩΨ±ΩΨ¨ΩΩΩΩΨ©Ωβ (Arabic) β Amr Elsekilly
- ζ±θ― (Chinese) β Re Tian
- PortuguΓͺs do Brasil (Brazilian Portuguese) β Tiago Boeing
- νκ΅μ΄ (Korean) β Suin Lee
- EspaΓ±ol (Spanish) β Adonis Mendoza
- TΓΌrkΓ§e (Turkish) β Δ°lker Demir
- ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ (Russian) β Mihail Gumennii
- TiαΊΏng Viα»t (Vietnamese) β Nguyα» n TrαΊ§n Chung
- Polski (Polish) β Dawid Lipinski
- ΩΨ§Ψ±Ψ³Ϋ (Persian) β Majid Alavizadeh
- Bahasa Indonesia (Indonesian) β Rijdzuan Sampoerna
- FranΓ§ais (French) β Robin MΓ©tral
- ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯ (Hindi) β Vikas Chauhan
- Ξλληνικά (Greek) β Dimitris Zarachanis
- ζ₯ζ¬θͺ (Japanese) β oimo23
- Deutsch (German) β burhannn
- ΡΠΊΡΠ°ΡΜΠ½ΡΡΠΊΠ° ΠΌΠΎΜΠ²Π° (Ukrainian) β Andrew Savetchuk
- ΰ·ΰ·ΰΆΰ·ΰΆ½ (Sinhala) β Udaya Shamendra
- Italiano (Italian) β Gianluca Fiore
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
π Call Stack β MDN
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: An Overview of the Engine, the Runtime, and the Call Stack β Alexander Zlatkovπ The Ultimate Guide to Execution Contexts, Hoisting, Scopes, and Closures in JavaScript β Tyler McGinnisπ How JavaScript Works Under The Hood: An Overview of JavaScript Engine, Heap and, Call Stack β Bipin Rajbhar
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
2. Primitive Types
Reference
Articles
- π 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
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
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
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
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
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- π == vs === JavaScript: Double Equals and Coercion β AJ Meyghani
π 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
Videos
- π₯ JavaScript - The typeof operator β Java Brains
π₯ Javascript typeof operator β DevDelight
6. Function Scope, Block Scope and Lexical Scope
Books
Articles
π JavaScript FunctionsβββUnderstanding The Basics β Brandon Morelliπ The battle between Function Scope and Block Scope β Marius Herringπ 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
- π Speaking JavaScript - Variables: Scopes, Environments, and Closures β Dr. Axel Rauschmayer
π 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
7. Expression vs Statement
Articles
π All you need to know about Javascript's Expressions, Statements and Expression Statements β Promise Tochiπ 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
8. IIFE, Modules and Namespaces
Articles
π Mastering Immediately-Invoked Function Expressions β Chandra Gundamaraju- π 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
π Understanding the JavaScript Event Loop β Ashish Guptaπ The JavaScript Event Loop β Flavio Copes- π How JavaScript works: Event loop β Alexander Zlatkov
π 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)
10. setTimeout, setInterval and requestAnimationFrame
Articles
π 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
Videos
- π₯ Javascript: How setTimeout and setInterval works β Coding Blocks India
π₯ setTimeout and setInterval in JavaScript β techsithπ₯ JavaScript Timers β Steve Griffithπ₯ JavaScript setTimeOut and setInterval Explained β Theodore Anderson
11. JavaScript Engines
Articles
- π 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
Videos
π₯ JavaScript Engines: The Good Partsβ’ β Mathias Bynens & Benedikt Meurerπ₯ JS Engine EXPOSEDπ₯ Google's V8 Architectureπ | Namaste JavaScript Ep. 16 - Akshay Saini
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
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?
Videos
14. Factories and Classes
Articles
- π How To Use Classes in JavaScript β Tania Rascia
- π Javascript Classes β Under The Hood β Majid
π ES6 Classes β Nathaniel Foster- π 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π Understandingsuper
in 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
π call() β MDNπ bind() β MDN- π apply() β MDN
Articles
π Grokking call(), apply() and bind() methods in JavaScript β Aniket Kudaleπ How-to: call() , apply() and bind() in JavaScript β Niladri Sekhar Duttaπ JavaScriptβs Apply, Call, and Bind Methods are Essential for JavaScript Professionals β Richard Bovell- π WTF is this - Understanding the this keyword, call, apply, and bind in JavaScript β Tyler McGinnis
π 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
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
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π Beyondtypeof
andinstanceof
: simplifying dynamic type checks β Dr. Axel Rauschmayer- π What Is the Instanceof Operator in JavaScript β appendTo
π Function and Object, instances of each other β Kiro Risk
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π Prototype in Javascript β Sandeep Ranjanπ 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
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π 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
π₯ 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- π Pure Functions In Javascript β Krunal
π 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
- π Wielding Pure Functions in JavaScript and Function Composition β Peleke Sengstacke
π 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
- π Closures β MDN
π Closure β JavaScript.Info
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
π The Ultimate Guide to Hoisting, Scopes, and Closures in JavaScriptβββTyler McGinnisπ 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
Videos
π₯ JavaScript The Hard Parts: Closure, Scope & Execution Context - Codesmithπ₯ 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
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π Fun With Higher Order Functions In JavaScript β Derickπ 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- π Understanding Recursion in JavaScript with Confidence β Jay
π 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
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
π Introduction to Sets in JavaScript β Alligator.ioπ Introduction to Maps in JavaScript β Alligator.io- π 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- π ES6: Working with Sets in JavaScript β Dead Code Rising
- π 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π₯ The Differences between ES6 Maps and Sets β Steve Griffithπ₯ Javascript Generators - THEY CHANGE EVERYTHING - ES6 Generators Harmony Generators β LearnCode.academy
25. Promises
Reference
π Promise β MDN
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
Promise
101 β 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
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
26. async/await
Reference
Books
π Eloquent JavaScript, 3rd Edition: Ch. 11 - Asynchronous Programmingπ Exploring JS: Asynchronous Programming
Articles
π Understanding async/await in Javascript β Gokul N Kπ Exploring Async/Await Functions in JavaScript β Alligator.io- π Asynchronous Javascript using async/await β Joy Warugu
π Modern Asynchronous JavaScript with async/await β Flavio Copesπ Asynchronous JavaScript: From Callback Hell to Async and Await β Demir Selmanovicπ Javascript β ES8 Introducing async/await Functions β Ben Garrison- π How to escape async/await hell β Aditya Agarwal
π Understanding JavaScriptβs async await β NicolΓ‘s Bevacquaπ JavaScript Async/Await: Serial, Parallel and Complex Flow β TechBrij- π From JavaScript Promises to Async/Await: why bother? β Chris Nwamba
π Flow Control in Modern JS: Callbacks to Promises to Async/Await β Craig Bucklerπ JavaScript: Promises and Why Async/Await Wins the Battle β Nick Parsonsπ How to improve your asynchronous Javascript code with async and await β Indrek Lasnπ Making Fetches Easy With Async Await β Mickey Sheridan- π 7 Reasons Why JavaScript Async/Await Is Better Than Plain Promises β Mostafa Gaafar
- π Asynchronous Operations in JavaScript β Jscrambler
- π Async/await: A slight design flaw. β Joey
π JavaScript: Promises or async-await β Gokul N Kπ Async / Await: From Zero to Hero β Zhi Yuan- π JavaScript Visualized: Promises & Async/Await β Lydia Hallie
π Making asynchronous programming easier with async and await β MDNπ JavaScript Async/Await Tutorial β Learn Callbacks, Promises, and Async/Await in JS by Making Ice Cream
Videos
π₯ Async + Await β Wes Bosπ₯ Asynchrony: Under the Hood β Shelley Vohrπ₯ async/await in JavaScript - What, Why and How β Fun Fun Functionπ₯ async/await Part 1 - Topics of JavaScript/ES8 β The Coding Trainπ₯ async/await Part 2 - Topics of JavaScript/ES8 β The Coding Trainπ₯ Complete Guide to JS Async & Await ES2017/ES8 β Colt Steeleπ₯ Tips for using async/await in JavaScript β James Q Quick
27. Data Structures
Articles
π Data Structures in JavaScript β Thon Lyπ Algorithms and Data Structures in JavaScript β Oleksii Trekhlebπ Data Structures: Objects and Arrays β Chris Nwambaπ Data structures in JavaScript β Benoit Vallonπ Playing with Data Structures in Javascript β Anish K.π The Little Guide of Queue in JavaScript β GermΓ‘n Cutraroπ All algorithms writing with JavaScript in the book 'Algorithms Fourth Edition'π Collection of classic computer science paradigms in JavaScriptπ All the things you didn't know you wanted to know about data structuresπ JavaScript Data Structures: 40 Part Series β miku86π Data Structures: Understanding Graphs β Rachel Hawaπ Data Structures Two Ways: Linked List (Pt 1) β Freddie Duffieldπ Data Structures Two Ways: Linked List (Pt 2) β Freddie Duffieldπ Graph Data Structures Explained in JavaScript β Adrian Mejia
Videos
π₯ Algorithms In Javascript | Ace Your Interview β Eduonix Learning Solutionsπ₯ Data Structures and Algorithms in JavaScript β freeCodeCampπ₯ Learning JavaScript Data Structures and Algorithms: Sorting β Packt Videoπ₯ JavaScript Data Structures: Getting Started β Academind
28. Expensive Operation and Big O Notation
Articles
π Big O Notation in Javascript β CΓ©sar AntΓ³n Dorantesπ Time Complexity/Big O Notation β Tim Robertsπ Big O in JavaScript β Gabriela Medinaπ Big O Search Algorithms in JavaScript β Bradley Braithwaiteπ Time Complexity Analysis in JavaScript β Jennifer Blandπ Algorithms in plain English: time complexity and Big-O Notation β Michael Olorunnisolaπ An Introduction to Big O Notation β Joseph Trettevik
Videos
π₯ JavaScript: Intro to Big O Notation and Function Runtime β Eric Traubπ₯ Essential Big O for JavaScript Developers β Dave Smithπ₯ Big O Notation - Time Complexity Analysis β WebTunings
29. Algorithms
Articles
π Data Structures and Algorithms using ES6π Algorithms and data structures implemented in JavaScript with explanations and links to further readingsπ JS: Interview Algorithmπ Algorithms in JavaScript β Thon Lyπ JavaScript Objects, Square Brackets and Algorithms β Dmitri Grabovπ Atwood's Law applied to CS101 - Classic algorithms and data structures implemented in JavaScript- π Data Structures and Algorithms library in JavaScript
- π Collection of computer science algorithms and data structures written in JavaScript
- π Algorithms and Data Structures in JavaScript β Oleksii Trekhleb
30. Inheritance, Polymorphism and Code Reuse
Reference
Articles
π Inheritance in JavaScript β Rupesh Mishraπ Simple Inheritance with JavaScript β David Catuhe- π JavaScript β Inheritance, delegation patterns and Object linking β NC Patro
π Object Oriented JavaScript: Polymorphism with examples β Knoldus Blogsπ Program Like Proteus β A beginnerβs guide to polymorphism in Javascript β Sam Galsonπ Object-oriented JavaScript: A Deep Dive into ES6 Classes β Jeff Mott
Videos
π₯ Inheritance in JavaScript β kudvenkat- π₯ JavaScript ES6 Classes and Inheritance β Traversy Media
- π₯ Polymorphism in JavaScript β kudvenkat
31. Design Patterns
Books
Articles
- π 4 JavaScript Design Patterns You Should Know β Devan Patel
π JavaScript Design Patterns β Beginner's Guide to Mobile Web Development β Soumyajit Pathakπ JavaScript Design Patterns β Akash Palπ Javascript Design Patterns: What They Are & How To Use Them β Patrick Simpsonπ JavaScript Design Patterns: Understanding Design Patterns in JavaScript - Sukhjinder Arora- π All the 23 (GoF) design patterns implemented in Javascript β Felipe Beline
- π The Power of the Module Pattern in JavaScript β jsmanifest
π Design Patterns for Developers using JavaScript pt. I β Oliver Mensahπ Design Patterns for Developers using JavaScript pt. II β Oliver Mensahπ Design patterns in modern JavaScript development- π Understanding Design Patterns: Iterator using Dev.to and Medium social networks! β Carlos Caballero
π JavaScript Design Patterns - Factory Pattern β KristijanFiΕ‘trekπ JavaScript Design Pattern β Module Pattern - Factory Pattern β Moonπ Design Patterns: Null Object - Carlos Caballero- π Strategy Pattern - Francesco Ciulla
π Adapter Pattern - Francesco Ciullaπ The Power of Composite Pattern in JavaScript - jsmanifestπ In Defense of Defensive Programming - Adam Nathaniel Davis
Videos
32. Partial Applications, Currying, Compose and Pipe
Books
Articles
π Use function composition in JavaScript β RΓ©miπ Currying in JavaScript ES6 β Adam Bene- π Composition and Currying Elegance in JavaScript β Pragyan Das
π Functional JavaScript: Function Composition For Every Day Use β Joel Thomsπ Functional Composition: compose() and pipe() β Anton Parasπ Why The Hipsters Compose Everything: Functional Composing In JavaScript β A. Sharifπ A Gentle Introduction to Functional JavaScript pt III: Functions for making functions β James Sinclairπ Curry And Compose (why you should be using something like ramda in your code) β jsanchesleao- π Function Composition in JavaScript with Pipe β Andy Van Slaars
π Practical Functional JavaScript with Ramda β Andrew D'Amelio, Yuri Takhteyevπ The beauty in Partial Application, Currying, and Function Composition β Joel Thoms- π Curry or Partial Application? β Eric Elliott
π Partial Application in JavaScript β Ben Almanπ Partial Application of Functions β Functional Reactive Ninjaπ Currying vs Partial Application β Deepak Guptaπ Partial Application in ECMAScript 2015 β Ragan Wald- π Functional Composition in Javascript β Joe Cortopassi
- π So You Want to be a Functional Programmer pt. I β Charles Scalfani
π So You Want to be a Functional Programmer pt. II β Charles Scalfaniπ So You Want to be a Functional Programmer pt. III β Charles Scalfaniπ So You Want to be a Functional Programmer pt. IV β Charles Scalfaniπ So You Want to be a Functional Programmer pt. V β Charles Scalfaniπ An introduction to the basic principles of Functional Programming β TKπ Concepts of Functional Programming in Javascript β TKπ An Introduction to Functional Programming Style in JavaScript β JavaScript Teacherπ A practical guide to writing more functional JavaScript β Nadeesha Cabral- π A simple explanation of functional pipe in JavaScript β Ben Lesh
Videos
π₯ Compose vs Pipe: Functional Programming in JavaScript β Chyld Studios- π₯ JavaScript Functional Programing: Compose β Theodore Anderson
- π₯ Function Composition - Functional JavaScript β NWCalvank
π₯ JavaScript Function Composition Explained β Theodore Andersonπ₯ Let's code with function composition β Fun Fun Functionπ₯ Partial Application vs. Currying β NWCalvankπ₯ JavaScript Partial Application β Theodore Anderson- π₯ call, apply and bind method in JavaScript
33. Clean Code
Articles
π Clean Code Explained β A Practical Introduction to Clean Coding for Beginners β freeCodeCamp- π Clean Code concepts adapted for JavaScript β Ryan McDermott
π Clean Code Practice: How to write clean code β Tirth Bodawalaπ JavaScript Clean Coding Best Practices β AndrΓ‘s TΓ³thπ Function parameters in JavaScript Clean Code β Kevin Petersπ Keeping your code clean β Samuel Jamesπ Best Practices for Using Modern JavaScript Syntax β M. David Green- π best practices for cross node/web development - Jimmy WΓ€rting
π Writing Clean Code - Dylan Paulusπ Writing Clean Code and The Practice of Programming - Nityesh Agarwalπ Clean code, dirty code, human code - Daniel Irvineπ Practical Ways to Write Better JavaScript - Ryland Gπ The Must-Know Clean Code Principles - Kesk on Mediumπ The Clean Code Book - Robert C Martin