Awesome
<h1 align="center"> <br> <a href="https://github.com/robinmetral/33-concepts-js"><img src="https://i.imgur.com/dsHmk6H.jpg" alt="33 concepts que tout développeur JavaScript devrait connaître" width=200"></a> <br> <br> 33 concepts que tout développeur JavaScript devrait connaître. <br><br> </h1> <p align="center"> <a href="https://opensource.guide/fr/how-to-contribute/#ouvrir-une-pull-request"> <img src="https://img.shields.io/badge/PRs-bienvenues-brightgreen.svg?style=flat-square" alt="PRs bienvenues"> </a> <a href="https://opensource.org/licenses/MIT"> <img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="License MIT"> </a> </p>Introduction
Ce dépôt est une traduction de 33-js-concepts par Leonardo Madonaldo.
Il a été créé dans le but d'aider les développeurs à maîtriser les concepts fondamentaux du JavaScript, et fonctionne comme un guide pour continuer à apprendre. Il est basé sur un article écrit par Stephen Curtis, que vous pouvez lire ici (en anglais :gb:).
:rocket: La version anglaise de ce dépôt est considérée par GitHub comme étant l'un des meilleurs projets open-source de 2018 !
:information_source: Les ressources ci-dessous sont principalement en anglais. Proposez un article ou une vidéo en français ici ou faites directement une pull request !
Table des matières
- 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
Articles
- :scroll: Understanding Javascript Call Stack, Event Loops — Gaurav Pandvia
- :scroll: Understanding the JavaScript Call Stack — Charles Freeborn
- :scroll: Javascript: What Is The Execution Context? What Is The Call Stack? — Valentino Gagliardi
- :scroll: What is the JS Event Loop and Call Stack? — Jess Telford
- :scroll: Call Stack — MDN
- :scroll: Understanding Execution Context and Execution Stack in Javascript — Sukhjinder Arora
- :scroll: How JavaScript Works: An Overview of the Engine, the Runtime, and the Call Stack — Alexander Zlatkov
- :scroll: The Ultimate Guide to Execution Contexts, Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis
Vidéos
- :movie_camera: Javascript: the Call Stack explained — Coding Blocks India
- :movie_camera: The JS Call Stack Explained In 9 Minutes — Colt Steele
- :movie_camera: JavaScript Execution Stack — Codecademy
- :movie_camera: What is the Call Stack? — Eric Traub
- :movie_camera: The Call Stack — Kevin Drumm
- :movie_camera: Understanding JavaScript Execution — Codesmith
- :movie_camera: Call Stack & Event Loop — movies com
- :movie_camera: The Ultimate Guide to Execution Contexts, Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis
2. Primitive Types
Articles
- :scroll: How numbers are encoded in JavaScript — Dr. Axel Rauschmayer
- :scroll: What You Need to Know About JavaScript Number Type — Max Wizard K
- :scroll: What Every JavaScript Developer Should Know About Floating Point Numbers — Chewxy
- :scroll: The Secret Life of JavaScript Primitives — Angus Croll
- :scroll: Primitive Types — Flow
- :scroll: (Not) Everything in JavaScript is an Object - Daniel Li
- :scroll: JavaScript data types and data structures - MDN
Vidéos
- :movie_camera: JavaScript Reference vs Primitive Types — Academind
- :movie_camera: JavaScript Primitive Types — Simon Sez IT
- :movie_camera: Value Types and Reference Types in JavaScript — Programming with Mosh
- :movie_camera: JavaScript Primitive Data Types — Avelx
- :movie_camera: Everything you never wanted to know about JavaScript numbers — Bartek Szopka
- :movie_camera: What are variables in Javascript? — JS For Everyone
3. Value Types and Reference Types
Articles
- :scroll: Explaining Value vs. Reference in Javascript — Arnav Aggarwal
- :scroll: Understand Value and Reference Types in JavaScript — Zsolt Nagy
- :scroll: Primitive Types & Reference Types in JavaScript — Bran van der Meer
- :scroll: Value Types, Reference Types and Scope in JavaScript — Ben Aston
- :scroll: Back to roots: JavaScript Value vs Reference — Miro Koczka
- :scroll: Grasp “By Value” and “By Reference” in JavaScript — Léna Faure
- :scroll: JavaScript Reference and Copy Variables — Vítor Capretz
- :scroll: JavaScript Primitive vs Reference Values
- :scroll: JavaScript by Reference vs. by Value — nrabinowitz
Vidéos
- :movie_camera: Javascript Pass by Value vs Pass by Reference — techsith
- :movie_camera: JavaScript Value vs Reference Types — Programming with Mosh
4. Implicit, Explicit, Nominal, Structuring and Duck Typing
Articles
- :scroll: What you need to know about Javascript's Implicit Coercion — Promise Tochi
- :scroll: JavaScript Type Coercion Explained — Alexey Samoshkin
- :scroll: Javascript Coercion Explained — Ben Garrison
- :scroll: What exactly is Type Coercion in Javascript? - Stack Overflow
- :scroll: You Don't Know JS: Types & Grammar [Book] — Kyle Simpson
- :scroll: (Not) Everything in JavaScript is an Object - Daniel Li
- :scroll: Type Coercion in JavaScript, and why everyone gets it wrong.
Vidéos
- :movie_camera: == ? === ??? ...#@^% - Shirmung Bielefeld
- :movie_camera: Coercion in Javascript - Hitesh Choudhary
- :movie_camera: JavaScript Questions: What is Coercion? - Steven Hancock
5. == vs === vs typeof
Articles
- :scroll: JavaScript Double Equals vs. Triple Equals — Brandon Morelli
- :scroll: What is the difference between =, ==, and === in JS? — Codecademy
- :scroll: Should I use === or == equality comparison operator in JavaScript? — Panu Pitkamaki
- :scroll: == vs === JavaScript: Double Equals and Coercion — AJ Meyghani
- :scroll: Why Use the Triple-Equals Operator in JavaScript? — Louis Lazaris
- :scroll: What is the difference between == and === in JavaScript? — Craig Buckler
- :scroll: Why javascript's typeof always return "object"? — Stack Overflow
- :scroll: Checking Types in Javascript — Toby Ho
- :scroll: How to better check data types in JavaScript — Webbjocke
- :scroll: Checking for the Absence of a Value in JavaScript — Tomer Aberbach
Vidéos
- :movie_camera: JavaScript - The typeof operator — Java Brains
- :movie_camera: Javascript typeof operator — DevDelight
6. Function Scope, Block Scope and Lexical Scope
Articles
- :scroll: You Don't Know JS: Scope & Closures [Book] — Kyle Simpson
- :scroll: JavaScript Functions — Understanding The Basics — Brandon Morelli
- :scroll: The battle between Function Scope and Block Scope — Marius Herring
- :scroll: Emulating Block Scope in JavaScript — Josh Clanton
- :scroll: The Difference Between Function and Block Scope in JavaScript — Joseph Cardillo
- :scroll: Function Scopes and Block Scopes in JavaScript — Samer Buna
- :scroll: Understanding Scope and Context in JavaScript | Ryan Morr
- :scroll: JavaScript Scope and Closures — Zell Liew
- :scroll: Understanding Scope in JavaScript — Wissam Abirached
- :scroll: Speaking JavaScript - Variables: Scopes, Environments, and Closures — Dr. Axel Rauschmayer
- :scroll: Understanding Scope in JavaScript ― Hammad Ahmed
Vidéos
- :movie_camera: What Makes Javascript Weird ... and Awesome pt. 4 — LearnCode.academy
- :movie_camera: Variable Scope in JavaScript — Kirupa Chinnathambi
- :movie_camera: JavaScript Block Scope and Function Scope — mmtuts
- :movie_camera: What the Heck is Lexical Scope? — NWCalvank
7. Expression vs Statement
Articles
- :scroll: All you need to know about Javascript's Expressions, Statements and Expression Statements — Promise Tochi
- :scroll: Function Expressions vs Function Declarations — Paul Wilkins
- :scroll: JavaScript Function — Declaration vs Expression — Ravi Roshan
- :scroll: Function Declarations vs. Function Expressions — Mandeep Singh
- :scroll: Function Declarations vs. Function Expressions — Anguls Croll
Vidéos
- :movie_camera: Expressions vs. Statements in JavaScript — Hexlet
- :movie_camera: JavaScript - Expression vs. Statement — WebTunings
- :movie_camera: Function Statements and Function Expressions — Codeacademy
8. IIFE, Modules and Namespaces
Articles
- :scroll: Mastering Immediately-Invoked Function Expressions ― Chandra Gundamaraju
- :scroll: Do ES6 Modules make the case of IIFEs obsolete?
- :scroll: A 10 minute primer to JavaScript modules, module formats, module loaders and module bundlers ― Jurgen Van de Moere
- :scroll: Modules ― Exploring JS
- :scroll: ES modules: A cartoon deep-dive — Lin Clark
- :scroll: Understanding ES6 Modules — Craig Buckler
- :scroll: An overview of ES6 Modules in JavaScript — Brent Graham
- :scroll: ES6 Modules in Depth — Nicolás Bevacqua
- :scroll: ES6 modules, Node.js and the Michael Jackson Solution — Alberto Gimeno
- :scroll: JavaScript Modules: A Beginner’s Guide — Preethi Kasireddy
Vidéos
- :movie_camera: Immediately Invoked Function Expression - Beau teaches JavaScript — freeCodeCamp
- :movie_camera: Understanding JavaScript IIFE
- :movie_camera: JavaScript Modules: ES6 Import and Export — Kyle Robinson
- :movie_camera: ES6 - Modules — Ryan Christiani
- :movie_camera: ES6 Modules in the Real World — Sam Thorogood
- :movie_camera: ES6 Modules — TempleCoding
9. Message Queue and Event Loop
Articles
- :scroll: JavaScript Event Loop Explained — Anoop Raveendran
- :scroll: The JavaScript Event Loop: Explained — Erin Sweson-Healey
- :scroll: What is the Event Loop in Javascript — WP Tutor.io
- :scroll: Understanding JS: The Event Loop — Alexander Kondov
- :scroll: Understanding the JavaScript Event Loop — Ashish Gupta
- :scroll: Event Loop in Javascript — Manjula Dube
- :scroll: The JavaScript Event Loop — Flavio Copes
- :scroll: How JavaScript works: Event loop — Alexander Zlatkov
- :scroll: Tasks, microtasks, queues and schedules — Jake Archibald
- :scroll: Visualising the JavaScript Event Loop with a Pizza Restaurant analogy — Priyansh Jain
Vidéos
- :movie_camera: What the heck is the event loop anyway? | JSConf EU — Philip Roberts
- :movie_camera: JavaScript Event Loop — ComScience Simplified
- :movie_camera: I'm stuck in an Event Loop — Philip Roberts
- :movie_camera: In The Loop - Jake Archibald | JSConf.Asia 2018
- :movie_camera: Desmitificando el Event Loop (Spanish)
10. setTimeout, setInterval and requestAnimationFrame
Articles
- :scroll: setTimeout and setInterval — JavaScript.Info
- :scroll: Why not to use setInterval — Akanksha Sharma
- :scroll: setTimeout VS setInterval — Develoger
- :scroll: Using requestAnimationFrame — Chris Coyier
- :scroll: Understanding JavaScript's requestAnimationFrame() — JavaScript Kit
- :scroll: Handling time intervals in JavaScript - Amit Merchant
Vidéos
- :movie_camera: Javascript: How setTimeout and setInterval works — Coding Blocks India
- :movie_camera: setTimeout and setInterval in JavaScript — techsith
- :movie_camera: JavaScript Timers — Steve Griffith
- :movie_camera: JavaScript setTimeout, setInterval & clearInterval — DoingITeasyChannel
- :movie_camera: JavaScript setTimeOut and setInterval Explained — Theodore Anderson
11. JavaScript Engines
Articles
- :scroll: JavaScript Engines — Jen Looper
- :scroll: Understanding How the Chrome V8 Engine Translates JavaScript into Machine Code — DroidHead
- :scroll: Understanding V8’s Bytecode — Franziska Hinkelmann
- :scroll: How the V8 engine works? — Thibault Laurens
- :scroll: A Brief History of Google’s V8 Javascript Engine — Clair Smith
- :scroll: JavaScript essentials: why you should know how the engine works - Rainer Hahnekamp
Vidéos
<p align="center"> :arrow_up: <strong><a href="#table-des-matières">Table des matières</a></strong> :arrow_up: </p>12. Bitwise Operators, Type Arrays and Array Buffers
Articles
- :scroll: Programming with JS: Bitwise Operations — Alexander Kondov
- :scroll: Using JavaScript’s Bitwise Operators in Real Life — ian m
- :scroll: JavaScript Bitwise Operators — w3resource
- :scroll: Bitwise Operators in Javascript — Joe Cha
- :scroll: A Comprehensive Primer on Binary Computation and Bitwise Operators in Javascript — Paul Brown
Vidéos
- :movie_camera: JavaScript Bitwise Operators — Programming with Mosh
13. DOM and Layout Trees
Articles
- :scroll: How To Understand and Modify the DOM in JavaScript — Tania Rascia
- :scroll: What’s the Document Object Model, and why you should know how to use it — Leonardo Maldonado
- :scroll: JavaScript DOM Tutorial with Example — Guru99
- :scroll: What is the DOM? — Chris Coyier
- :scroll: Traversing the DOM with JavaScript — Zell Liew
- :scroll: Eloquent JavaScript [Book] — The Document Object Model
- :scroll: DOM Tree
- :scroll: How to traverse the DOM in Javascript — Vojislav Grujić
- :scroll: Render Tree Construction — Ilya Grigorik
Vidéos
- :movie_camera: JavaScript DOM — The Net Ninja
- :movie_camera: JavaScript DOM Crash Course — Traversy Media
14. Factories and Classes
Articles
- :scroll: How To Use Classes in JavaScript — Tania Rascia
- :scroll: Javascript Classes — Under The Hood — Majid
- :scroll: ES6 Classes — Nathaniel Foster
- :scroll: Better JavaScript with ES6, Pt. II: A Deep Dive into Classes ― Peleke Sengstacke
- :scroll: Understand the Factory Design Pattern in Plain JavaScript — Aditya Agarwal
- :scroll: Factory Functions in JavaScript — Josh Miller
- :scroll: The Factory Pattern in JS ES6 — SnstsDev
- :scroll: Class vs Factory function: exploring the way forward — Cristi Salcescu
- :scroll: How ES6 classes really work and how to build your own — Robert Grosse
Vidéos
- :movie_camera: JavaScript Factory Functions — Programming with Mosh
- :movie_camera: Factory Functions in JavaScript — Fun Fun Function
- :movie_camera: Javascript Tutorial Function Factories — Crypto Chan
15. this, call, apply and bind
Articles
- :scroll: How-to: call() , apply() and bind() in JavaScript — Niladri Sekhar Dutta
- :scroll: JavaScript’s Apply, Call, and Bind Methods are Essential for JavaScript Professionals — Richard Bovell
- :scroll: WTF is this - Understanding the this keyword, call, apply, and bind in JavaScript — Tyler McGinnis
- :scroll: Javascript: call(), apply() and bind() — Omer Goldberg
- :scroll: The difference between call / apply / bind — Ivan Sifrim
- :scroll: call(), apply() and bind() methods in JavaScript
- :scroll: Mastering 'this' in JavaScript: Callbacks and bind(), apply(), call() — Michelle Gienow
- :scroll: JavaScript’s apply, call, and bind explained by hosting a cookout — Kevin Kononenko
- :scroll: How AND When to use bind, call, and apply in Javascript — Eigen X
- :scroll: JavaScript .bind() vs .apply() and .call() — Hack Sparrow
- :scroll: call() — MDN
- :scroll: bind() — MDN
- :scroll: apply() — MDN
- :scroll: What is 'this' in JavaScript? — Daniel Li
- :scroll: Let me explain to you what is
this
. (Javascript) — Jason Yu - :scroll: Understanding the “this” Keyword in JavaScript — Pavan
Vidéos
- :movie_camera: JavaScript call, apply and bind — techsith
- :movie_camera: JavaScript Practical Applications of Call, Apply and Bind functions— techsith
- :movie_camera: JavaScript (call, bind, apply) — curious aatma
- :movie_camera: Understanding Functions and 'this' In The World of ES2017 — Bryan Hughes
- :movie_camera: bind and this - Object Creation in JavaScript - FunFunFunction
- :movie_camera: JavaScript Practical Applications of Call, Apply and Bind functions — techsith
- :movie_camera: JS Function Methods call(), apply(), and bind() — Steve Griffith
16. new, Constructor, instanceof and Instances
Articles
- :scroll: JavaScript For Beginners: the ‘new’ operator — Brandon Morelli
- :scroll: Let’s demystify JavaScript’s ‘new’ keyword — Cynthia Lee
- :scroll: Constructor, operator "new" — JavaScript.Info
- :scroll: Understanding JavaScript Constructors — Faraz Kelhini
- :scroll: Use Constructor Functions — Openclassrooms
- :scroll: Beyond
typeof
andinstanceof
: simplifying dynamic type checks — Dr. Axel Rauschmayer - :scroll: What Is the Instanceof Operator in JavaScript — appendTo
- :scroll: JavaScript instanceof vs typeof — Gary Rafferty
- :scroll: Function and Object, instances of each other — Kiro Risk
17. Prototype Inheritance and Prototype Chain
Articles
- :scroll: Javascript : Prototype vs Class — Valentin PARSY
- :scroll: JavaScript engine fundamentals: optimizing prototypes — Mathias Bynens
- :scroll: JavaScript Prototype — NC Patro
- :scroll: Prototype in Javascript — Sandeep Ranjan
- :scroll: Prototypes in JavaScript — Rupesh Mishra
- :scroll: Prototype in JavaScript: it’s quirky, but here’s how it works — Pranav Jindal
- :scroll: Inheritance and the prototype chain — MDN
- :scroll: Understanding JavaScript: Prototype and Inheritance — Alexander Kondov
- :scroll: Prototypal Inheritance — JavaScript.Info
- :scroll: How To Work with Prototypes and Inheritance in JavaScript — Tania Rascia
- :scroll: Master JavaScript Prototypes & Inheritance — Arnav Aggarwal
- :scroll: You Don't Know JS [Book] Chapter 5: Prototypes — Kyle Simpson
- :scroll: JavaScript’s Prototypal Inheritance Explained Using CSS — Nash Vail
- :scroll: Prototypal Inheritance in JavaScript — Jannis Redmann
- :scroll: Classical and Prototypical Inheritance in JavaScript — Danny Cornelisse
- :scroll: Demystifying ES6 Classes And Prototypal Inheritance ― Neo Ighodaro
- :scroll: Intro To Prototypal Inheritance — Dharani Jayakanthan
- :scroll: Classes in JavaScript - Explained — Daniel Li
- :scroll: You Don't Know JS: this & Object Prototypes — Kyle Simpson
Vidéos
- :movie_camera: Javascript Prototype Inheritance — Avelx
- :movie_camera: JavaScript Prototype Inheritance Explained pt. I — techsith
- :movie_camera: JavaScript Prototype Inheritance Explained pt. II — techsith
- :movie_camera: JavaScript Prototype Inheritance Explained — Kyle Robinson
- :movie_camera: Advanced Javascript - Prototypal Inheritance In 1 Minute
- :movie_camera: An Overview Of Classical Javascript Classes and Prototypal Inheritance — Pentacode
- :movie_camera: Object Oriented JavaScript - Prototype — The Net Ninja
- :movie_camera: Prototype in JavaScript — kudvenkat
- :movie_camera: JavaScript Using Prototypes — O'Reilly
- :movie_camera: A Beginner's Guide to Javascript's Prototype — Tyler Mcginnis
- :movie_camera: Prototypes in Javascript - p5.js Tutorial — The Coding Train
18. Object.create and Object.assign
Articles
- :scroll: Object.create() — MDN
- :scroll: Object.create in JavaScript — Rupesh Mishra
- :scroll: Object.create(): the New Way to Create Objects in JavaScript — Rob Gravelle
- :scroll: Basic Inheritance with Object.create — Joshua Clanton
- :scroll: Object.create() In JavaScript — GeeksforGeeks
- :scroll: Understanding the difference between Object.create() and the new operator — Jonathan Voxland
- :scroll: JavaScript Object Creation: Patterns and Best Practices — Jeff Mott
- :scroll: Dealing With Objects in JavaScript With Object.assign, Object.keys and hasOwnProperty
- :scroll: Copying Objects in JavaScript ― Orinami Olatunji
- :scroll: Object.assign() — MDN
- :scroll: JavaScript: Object.assign() — Thiago S. Adriano
- :scroll: How to deep clone a JavaScript Object — Flavio Copes
Vidéos
- :movie_camera: Object.assign() explained — Aaron Writes Code
- :movie_camera: Object.assign() Method — techsith
19. map, reduce, filter
Articles
- :scroll: JavaScript Functional Programming — map, filter and reduce — Bojan Gvozderac
- :scroll: Learn map, filter and reduce in Javascript — João Miguel Cunha
- :scroll: JavaScript’s Map, Reduce, and Filter — Dan Martensen
- :scroll: How to Use Map, Filter, & Reduce in JavaScript — Peleke Sengstacke
- :scroll: JavaScript — Learn to Chain Map, Filter, and Reduce — Brandon Morelli
- :scroll: Javascript data structure with map, reduce, filter and ES6 — Deepak Gupta
- :scroll: Understanding map, filter and reduce in Javascript — Luuk Gruijs
- :scroll: Functional Programming in JS: map, filter, reduce (Pt. 5) — Omer Goldberg
- :scroll: JavaScript: Map, Filter, Reduce — William S. Vincent
- :scroll: Arrow Functions: Fat and Concise Syntax in JavaScript — Kyle Pennell
- :scroll: JavaScript: Arrow Functions for Beginners — Brandon Morelli
- :scroll: When (and why) you should use ES6 arrow functions — and when you shouldn’t — Cynthia Lee
- :scroll: JavaScript — Learn & Understand Arrow Functions — Brandon Morelli
- :scroll: (JavaScript )=> Arrow functions — sigu
- :scroll: A possibility to use Async/Await for filter(), find(), forEach(), map() and reduce() methods in Array — Ruwan Geeganage
- :scroll: Javascript.reduce() — Paul Anderson
- :scroll: Why you should replace forEach with map and filter in JavaScript — Roope Hakulinen
- :scroll: Simplify your JavaScript – Use .map(), .reduce(), and .filter() — Etienne Talbot
- :scroll: JavaScript’s Reduce Method Explained By Going On a Diet — Kevin Kononenko
Vidéos
- :movie_camera: Map, Filter and Reduce — Lydia Hallie
- :movie_camera: Functional JavaScript: Map, forEach, Reduce, Filter — Theodore Anderson
- :movie_camera: JavaScript Array superpowers: Map, Filter, Reduce (part I) — Michael Rosata
- :movie_camera: JavaScript Array superpowers: Map, Filter, Reduce (part 2) — Michael Rosata
- :movie_camera: JavaScript Higher Order Functions - Filter, Map, Sort & Reduce — Epicop
- :movie_camera: [Array Methods 2/3] .filter + .map + .reduce — CodeWithNick
- :movie_camera: Arrow functions in JavaScript - What, Why and How — Fun Fun Function
- :movie_camera: Learning Functional Programming with JavaScript — Anjana Vakil - JSUnconf
20. Pure Functions, Side Effects and State Mutation
Articles
- :scroll: Javascript and Functional Programming — Pure Functions — Omer Goldberg
- :scroll: Master the JavaScript Interview: What is a Pure Function? — Eric Elliott
- :scroll: JavaScript: What Are Pure Functions And Why Use Them? — James Jeffery
- :scroll: Pure functions in JavaScript — @nicoespeon
- :scroll: Functional Programming: Pure Functions — Arne Brasseur
- :scroll: Pure Functions In Javascript — Krunal
- :scroll: Making your JavaScript Pure — Jack Franklin
- :scroll: To mutate, or not to mutate, in JavaScript
- :scroll: Arrays, Objects and Mutations — Federico Knüssel
- :scroll: The State of Immutability — Maciej Sikora
- :scroll: How to deal with dirty side effects in your pure functional JavaScript — James Sinclair
- :scroll: Preventing Side Effects in JavaScript — David Walsh
- :scroll: Wielding Pure Functions in JavaScript and Function Composition — Peleke Sengstacke
- :scroll: JavaScript: Pure Functions — William S. Vincent
- :scroll: Functional programming paradigms in modern JavaScript: Pure functions — Alexander Kondov
Vidéos
- :movie_camera: Pure Functions — Hexlet
- :movie_camera: Pure Functions - Functional Programming in JavaScript — Paul McBride
- :movie_camera: JavaScript Pure Functions — Seth Alexander
- :movie_camera: JavaScript Pure vs Impure Functions Explained — Theodore Anderson
21. Closures
Articles
- :scroll: Closures — MDN
- :scroll: I never understood JavaScript closures — Olivier De Meulder
- :scroll: Closure — JavaScript.Info
- :scroll: Understand JavaScript Closures With Ease — Richard Bovell
- :scroll: Understanding JavaScript Closures — Codesmith
- :scroll: Understand Closures in JavaScript — Brandon Morelli
- :scroll: A simple guide to help you understand closures in JavaScript — Prashant Ram
- :scroll: Understanding JavaScript Closures: A Practical Approach — Paul Upendo
- :scroll: Understanding JavaScript: Closures — Alexander Kondov
- :scroll: How to use JavaScript closures with confidence — Léna Faure
- :scroll: JavaScript closures by example — tyler
- :scroll: JavaScript — Closures and Scope — Alex Aitken
- :scroll: Discover the power of closures in JavaScript — Cristi Salcescu
- :scroll: Simplified JavaScript: Getting Started with Closures — Code Like A Girl
- :scroll: The Ultimate Guide to Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis
Vidéos
- :movie_camera: Javascript Closure — techsith
- :movie_camera: Closures — Fun Fun Function
- :movie_camera: Closures in JavaScript — techsith
- :movie_camera: JavaScript Closures 101: What is a closure? — JavaScript Tutorials
- :movie_camera: Closures — freeCodeCamp
- :movie_camera: JavaScript Closures — CodeWorkr
22. High Order Functions
Articles
- :scroll: Higher-Order Functions — Eloquent JavaScript [Book]
- :scroll: Higher-Order Functions in JavaScript — M. David Green
- :scroll: Higher Order Functions: Using Filter, Map and Reduce for More Maintainable Code — Guido Schmitz
- :scroll: First-class and Higher Order Functions: Effective Functional JavaScript — Hugo Di Francesco
- :scroll: Higher Order Functions in JavaScript — John Hannah
- :scroll: Higher-order Functions — Richard Bovell
- :scroll: Higher Order Functions in JavaScript — Zsolt Nagy
- :scroll: Fun With Higher Order Functions In JavaScript — Derick
- :scroll: Just a reminder on how to use high order functions — Pedro Filho
- :scroll: Understanding Higher-Order Functions in JavaScript — Sukhjinder Arora
Vidéos
- :movie_camera: JavaScript Higher Order Functions & Arrays — Traversy Media
- :movie_camera: Higher Order Functions — Fun Fun Function
- :movie_camera: Higher Order Functions in Javascript — Raja Yogan
- :movie_camera: Higher Order Iterators in JavaScript — Fun Fun Function
- :movie_camera: Higher Order Functions in JavaScript — The Coding Train
23. Recursion
Articles
- :scroll: Recursion in JavaScript — Kevin Ennis
- :scroll: Understanding Recursion in JavaScript — Zak Frisch
- :scroll: Learn and Understand Recursion in JavaScript — Brandon Morelli
- :scroll: Recursion in Functional JavaScript — M. David Green
- :scroll: Programming with JS: Recursion — Alexander Kondov
- :scroll: Anonymous Recursion in JavaScript — simo
- :scroll: Recursion, iteration and tail calls in JS — loverajoel
- :scroll: Understanding Recursion in JavaScript with Confidence — Jay
Vidéos
- :movie_camera: Recursion In JavaScript — techsith
- :movie_camera: Recursion — Fun Fun Function
- :movie_camera: Recursion and Recursive Functions — Hexlet
- :movie_camera: Recursion: Recursion() — JS Monthly — Lucas da Costa
- :movie_camera: Recursive Function in JavaScript — kudvenkat
- :movie_camera: What on Earth is Recursion? — Computerphile
- :movie_camera: Javascript Tutorial 34: Introduction To Recursion — codedamn
24. Collections and Generators
Articles
- :scroll: ES6 In Depth: Collections — Jason Orendorff
- :scroll: ES6 Collections: Using Map, Set, WeakMap, WeakSet — Kyle Pennell
- :scroll: ES6 WeakMaps, Sets, and WeakSets in Depth — Nicolás Bevacqua
- :scroll: Introduction to Sets in JavaScript — Alligator.io
- :scroll: Introduction to Maps in JavaScript — Alligator.io
- :scroll: Map, Set, WeakMap and WeakSet — JavaScript.Info
- :scroll: Maps in ES6 - A Quick Guide — Ben Mildren
- :scroll: ES6 — Set vs Array — What and when? — Maya Shavin
- :scroll: ES6 — Map vs Object — What and when? — Maya Shavin
- :scroll: ES6: Working with Sets in JavaScript — Dead Code Rising
- :scroll: Array vs Set vs Map vs Object — Real-time use cases in Javascript (ES6/ES7) — Rajesh Babu
- :scroll: How to create an array of unique values in JavaScript using Sets — Claire Parker-Jones
- :scroll: What You Should Know About ES6 Maps — Just Chris
- :scroll: ES6 Maps in Depth — Nicolás Bevacqua
- :scroll: Generator — MDN web docs
- :scroll: What are JavaScript Generators and how to use them — Vladislav Stepanov
- :scroll: Understanding JavaScript Generators With Examples — Arfat Salman
- :scroll: The Basics of ES6 Generators — Kyle Simpson
Vidéos
- :movie_camera: JavaScript ES6 / ES2015 Set, Map, WeakSet and WeakMap — Traversy Media
- :movie_camera: The Differences between ES6 Maps and Sets — Steve Griffith
- :movie_camera: Javascript Generators - THEY CHANGE EVERYTHING - ES6 Generators Harmony Generators — LearnCode.academy
25. Promises
Articles
- :scroll: Promise — MDN
- :scroll: JavaScript Promises for Dummies ― Jecelyn Yeen
- :scroll: Understanding promises in JavaScript — Gokul N K
- :scroll: Master the JavaScript Interview: What is a Promise? — Eric Elliott
- :scroll: An Overview of JavaScript Promises — Sandeep Panda
- :scroll: How to use Promises in JavaScript — Prashant Ram
- :scroll: Implementing Promises In JavaScript — Maciej Cieslar
- :scroll: JavaScript: Promises explained with simple real life analogies — Shruti Kapoor
- :scroll: Promises for Asynchronous Programming — Exploring JS
- :scroll: JavaScript Promises Explained By Gambling At A Casino — Kevin Kononenko
- :scroll: ES6 Promises: Patterns and Anti-Patterns — Bobby Brennan
- :scroll: A Simple Guide to ES6 Promises — Brandon Morelli
- :scroll: The ES6 Promises — Manoj Singh Negi
- :scroll: ES6 Promises in Depth — Nicolás Bevacqua
- :scroll: Playing with Javascript Promises: A Comprehensive Approach — Rajesh Babu
Vidéos
- :movie_camera: Let's Learn ES6 - Promises — Ryan Christiani
- :movie_camera: JavaScript ES6 / ES2015 Promises — Traversy Media
- :movie_camera: Promises — Fun Fun Function
- :movie_camera: Error Handling Promises in JavaScript — Fun Fun Function
- :movie_camera: Promises Part 1 - Topics of JavaScript/ES6 — The Coding Train
26. async/await
Articles
- :scroll: async/await — JavaScript.Info
- :scroll: Understanding async/await in Javascript — Gokul N K
- :scroll: Asynchronous Programming — Eloquent JavaScript
- :scroll: Exploring Async/Await Functions in JavaScript — Alligator.io
- :scroll: Asynchronous Javascript using async/await — Joy Warugu
- :scroll: Modern Asynchronous JavaScript with async/await — Flavio Copes
- :scroll: Asynchronous JavaScript: From Callback Hell to Async and Await — Demir Selmanovic
- :scroll: Javascript — ES8 Introducing async/await Functions — Ben Garrison
- :scroll: How to escape async/await hell — Aditya Agarwal
- :scroll: Understanding JavaScript’s async await — Nicolás Bevacqua
- :scroll: JavaScript Async/Await: Serial, Parallel and Complex Flow — TechBrij
- :scroll: Asynchronous Programming — Exploring JS
- :scroll: From JavaScript Promises to Async/Await: why bother? — Chris Nwamba
- :scroll: Flow Control in Modern JS: Callbacks to Promises to Async/Await — Craig Buckler
- :scroll: JavaScript: Promises and Why Async/Await Wins the Battle — Nick Parsons
Vidéos
- :movie_camera: Async + Await — Wes Bos
- :movie_camera: Asynchrony: Under the Hood — Shelley Vohr
- :movie_camera: async/await in JavaScript - What, Why and How — Fun Fun Function
- :movie_camera: async/await Part 1 - Topics of JavaScript/ES8 — The Coding Train
- :movie_camera: async/await Part 2 - Topics of JavaScript/ES8 — The Coding Train
27. Data Structures
Articles
- :scroll: Data Structures in JavaScript — Thon Ly
- :scroll: Algorithms and Data Structures in JavaScript — Oleksii Trekhleb
- :scroll: Data Structures: Objects and Arrays ― Chris Nwamba
- :scroll: Data structures in JavaScript — Benoit Vallon
- :scroll: Playing with Data Structures in Javascript — Anish K.
- :scroll: The Little Guide of Queue in JavaScript — Germán Cutraro
- :scroll: All algorithms writing with JavaScript in the book 'Algorithms Fourth Edition'
- :scroll: Collection of classic computer science paradigms in JavaScript
- :scroll: All the things you didn't know you wanted to know about data structures
Vidéos
- :movie_camera: Algorithms in JavaScript — Seth Koch
- :movie_camera: Algorithms In Javascript | Ace Your Interview — Eduonix Learning Solutions
- :movie_camera: Data Structures and Algorithms in JavaScript — freeCodeCamp
- :movie_camera: Learning JavaScript Data Structures and Algorithms: Sorting — Packt Video
28. Expensive Operation and Big O Notation
Articles
- :scroll: Big O Notation in Javascript — César Antón Dorantes
- :scroll: Time Complexity/Big O Notation — Tim Roberts
- :scroll: Big O in JavaScript — Gabriela Medina
- :scroll: Big O Search Algorithms in JavaScript — Bradley Braithwaite
- :scroll: Time Complexity Analysis in JavaScript — Jennifer Bland
- :scroll: Algorithms in plain English: time complexity and Big-O Notation — Michael Olorunnisola
Vidéos
- :movie_camera: JavaScript: Intro to Big O Notation and Function Runtime — Eric Traub
- :movie_camera: Essential Big O for JavaScript Developers — Dave Smith
- :movie_camera: Big O Notation - Time Complexity Analysis — WebTunings
29. Algorithms
Articles
- :scroll: Data Structures and Algorithms using ES6
- :scroll: Algorithms and data structures implemented in JavaScript with explanations and links to further readings
- :scroll: JS: Interview Algorithm
- :scroll: Algorithms in JavaScript — Thon Ly
- :scroll: JavaScript Objects, Square Brackets and Algorithms — Dmitri Grabov
- :scroll: Atwood's Law applied to CS101 - Classic algorithms and data structures implemented in JavaScript
- :scroll: Data Structures and Algorithms library in JavaScript
- :scroll: Collection of computer science algorithms and data structures written in JavaScript
30. Inheritance, Polymorphism and Code Reuse
Articles
- :scroll: Class inheritance, super — JavaScript.Info
- :scroll: Inheritance in JavaScript — MDN
- :scroll: Inheritance in JavaScript — Rupesh Mishra
- :scroll: Simple Inheritance with JavaScript — David Catuhe
- :scroll: JavaScript — Inheritance, delegation patterns and Object linking — NC Patro
- :scroll: Object Oriented JavaScript: Polymorphism with examples — Knoldus Blogs
- :scroll: Program Like Proteus — A beginner’s guide to polymorphism in Javascript — Sam Galson
- :scroll: Object-oriented JavaScript: A Deep Dive into ES6 Classes — Jeff Mott
Vidéos
- :movie_camera: Inheritance in JavaScript — kudvenkat
- :movie_camera: JavaScript ES6 Classes and Inheritance — Traversy Media
- :movie_camera: Polymorphism in JavaScript — kudvenkat
31. Design Patterns
Articles
- :scroll: 4 JavaScript Design Patterns You Should Know — Devan Patel
- :scroll: JavaScript Design Patterns – Beginner's Guide to Mobile Web Development — Soumyajit Pathak
- :scroll: JavaScript Design Patterns — Akash Pal
- :scroll: Javascript Design Patterns: What They Are & How To Use Them — Patrick Simpson
- :scroll: JavaScript Design Patterns: Understanding Design Patterns in JavaScript - Sukhjinder Arora
- :scroll: All the 23 (GoF) design patterns implemented in Javascript — Felipe Beline
- :scroll: Learning JavaScript Design Patterns — Addy Osmani
Vidéos
- :movie_camera: JavaScript Design Patterns — Udacity
- :movie_camera: JavaScript Patterns for 2017 — Scott Allen
32. Partial Applications, Currying, Compose and Pipe
Articles
- :scroll: Use function composition in JavaScript — Rémi
- :scroll: Currying in JavaScript ES6 — Adam Bene
- :scroll: Composition and Currying Elegance in JavaScript — Pragyan Das
- :scroll: Functional JavaScript: Function Composition For Every Day Use — Joel Thoms
- :scroll: Functional Composition: compose() and pipe() — Anton Paras
- :scroll: Why The Hipsters Compose Everything: Functional Composing In JavaScript — A. Sharif
- :scroll: A Gentle Introduction to Functional JavaScript pt III: Functions for making functions — James Sinclair
- :scroll: Curry And Compose (why you should be using something like ramda in your code) — jsanchesleao
- :scroll: Function Composition in JavaScript with Pipe — Andy Van Slaars
- :scroll: Practical Functional JavaScript with Ramda — Andrew D'Amelio, Yuri Takhteyev
- :scroll: The beauty in Partial Application, Currying, and Function Composition — Joel Thoms
- :scroll: Curry or Partial Application? — Eric Elliott
- :scroll: Partial Application in JavaScript — Ben Alman
- :scroll: Partial Application of Functions — Functional Reactive Ninja
- :scroll: Currying vs Partial Application — Deepak Gupta
- :scroll: Partial Application in ECMAScript 2015 — Ragan Wald
- :scroll: Functional Composition in Javascript — Joe Cortopassi
- :scroll: So You Want to be a Functional Programmer pt. I — Charles Scalfani
- :scroll: So You Want to be a Functional Programmer pt. II — Charles Scalfani
- :scroll: So You Want to be a Functional Programmer pt. III — Charles Scalfani
- :scroll: So You Want to be a Functional Programmer pt. IV — Charles Scalfani
- :scroll: So You Want to be a Functional Programmer pt. V — Charles Scalfani
- :scroll: Functional-Light JavaScript Chapter 3: Managing Function Inputs — Kyle Simpson
- :scroll: An introduction to the basic principles of Functional Programming — TK
- :scroll: Concepts of Functional Programming in Javascript — TK
Vidéos
- :movie_camera: Compose vs Pipe: Functional Programming in JavaScript — Chyld Studios
- :movie_camera: JavaScript Functional Programing: Compose — Theodore Anderson
- :movie_camera: Function Composition - Functional JavaScript — NWCalvank
- :movie_camera: JavaScript Function Composition Explained — Theodore Anderson
- :movie_camera: Let's code with function composition — Fun Fun Function
- :movie_camera: Partial Application vs. Currying — NWCalvank
- :movie_camera: JavaScript Partial Application — Theodore Anderson
33. Clean Code
Articles
- :scroll: Clean Code concepts adapted for JavaScript — Ryan McDermott
- :scroll: JavaScript Clean Coding Best Practices — András Tóth
- :scroll: Function parameters in JavaScript Clean Code — Kevin Peters
- :scroll: Clean Code JavaScript — Sarah Drasner
- :scroll: Keeping your code clean — Samuel James
- :scroll: Best Practices for Using Modern JavaScript Syntax — M. David Green
Vidéos
- :movie_camera: JavaScript Pro Tips - Code This, NOT That