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.
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:
- Albanian — Eldrin Ereqi
- Arabic — Amr Elsekilly
- Chinese — Re Tian
- Portuguese-BR — Tiago Boeing
- Korean — Suin Lee
- Spanish — Adonis Mendoza
- Turkish — İlker Demir
- Russian — Mihail Gumennii
- Tiếng Việt — Nguyễn Trần Chung
- Polish — Dawid Lipinski
- Persian — Majid Alavizadeh
- Indonesian — Rijdzuan Sampoerna
- French — Robin Métral
- Hindi — Vikas Chauhan
- Greek — Dimitris Zarachanis
- Japanese — oimo23
- German — burhannn
- Ukrainian — Andrew Savetchuk
- Sinhala — Udaya Shamendra
- 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 and State Mutation
- 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: 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🎥 JavaScript Execution Stack — Codecademy🎥 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
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
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ð Type Coercion in JavaScript, and why everyone gets it wrong.
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
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
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ð IIFE: Immediately Invoked Function Expressions â Parwinder
Videos
ð¥ Immediately Invoked Function Expression - Beau teaches JavaScript â freeCodeCampð¥ Understanding JavaScript IIFEð¥ JavaScript Modules: ES6 Import and Export â Kyle Robinsonð¥ ES6 - Modules â Ryan Christianið¥ ES6 Modules in the Real World â Sam Thorogoodð¥ ES6 Modules â TempleCoding
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ð Event Loop in Javascript â Manjula Dubeð 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
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?ð A Vanilla JS Guide On Mastering the DOM â Brian Pak
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ð JavaScript .bind() vs .apply() and .call() â Hack Sparrowð Let me explain to you what isthis
. (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
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
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ð 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ð Simplified JavaScript: Getting Started with ClosuresâââCode Like A Girlð 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
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ð Higher-order Functions â Richard Bovellð 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
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ð JavascriptPromise
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
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
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
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
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
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
33. Clean Code
Articles
ð Clean Code concepts adapted for JavaScript â Ryan McDermottð 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