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 by adding a link to your own recaps or reviews. If you want to translate the repo into your native language, please feel free to do so.
All the translations for this repo will be listed below:
- Call Stack
- Primitive Types
- Value Types and Reference Types
- Implicit, Explicit, Nominal, Structuring and Duck Typing
- == vs === vs typeof
- Function Scope, Block Scope and Lexical Scope
- Expression vs Statement
- IIFE, Modules and Namespaces
- Message Queue and Event Loop
- setTimeout, setInterval and requestAnimationFrame
- JavaScript Engines
- Bitwise Operators, Type Arrays and Array Buffers
- DOM and Layout Trees
- Factories and Classes
- this, call, apply and bind
- new, Constructor, instanceof and Instances
- Prototype Inheritance and Prototype Chain
- Object.create and Object.assign
- map, reduce, filter
- Pure Functions, Side Effects, State Mutation and Event Propagation
- Closures
- High Order Functions
- Recursion
- Collections and Generators
- Promises
- async/await
- Data Structures
- Expensive Operation and Big O Notation
- Algorithms
- Inheritance, Polymorphism and Code Reuse
- Design Patterns
- Partial Applications, Currying, Compose and Pipe
- Clean Code
1. Call Stack
Reference
Articles
Videos
⬆ Back to Top
2. Primitive Types
Reference
Articles
Videos
⬆ Back to Top
3. Value Types and Reference Types
Articles
Videos
⬆ Back to Top
4. Implicit, Explicit, Nominal, Structuring and Duck Typing
Articles
Videos
Books
⬆ Back to Top
5. == vs === vs typeof
Articles
Videos
⬆ Back to Top
6. Function Scope, Block Scope and Lexical Scope
Books
Articles
Videos
⬆ Back to Top
7. Expression vs Statement
Articles
Videos
⬆ Back to Top
8. IIFE, Modules and Namespaces
Reference
Articles
Videos
⬆ Back to Top
9. Message Queue and Event Loop
Articles
Videos
⬆ Back to Top
10. setTimeout, setInterval and requestAnimationFrame
Articles
Videos
⬆ Back to Top
11. JavaScript Engines
Articles
Videos
⬆ Back to Top
12. Bitwise Operators, Type Arrays and Array Buffers
Articles
Videos
⬆ Back to Top
13. DOM and Layout Trees
Books
Articles
Videos
⬆ Back to Top
14. Factories and Classes
Articles
Videos
⬆ Back to Top
15. this, call, apply and bind
Reference
Articles
- Grokking call(), apply() and bind() methods in JavaScript — Aniket Kudale
- JavaScript’s Apply, Call, and Bind Methods are Essential for JavaScript Professionals — Richard Bovell
- Javascript: call(), apply() and bind() — Omer Goldberg
- The difference between call / apply / bind — Ivan Sifrim
- What the hack is call, apply, bind in JavaScript — Ritik
- Mastering ‘this’ in JavaScript: Callbacks and bind(), apply(), call() — Michelle Gienow
- JavaScript’s apply, call, and bind explained by hosting a cookout — Kevin Kononenko
- How AND When to use bind, call, and apply in Javascript — Eigen X
- Let me explain to you what is
this
. (Javascript) — Jason Yu
- Understanding the “this” Keyword in JavaScript — Pavan
- How to understand the keyword this and context in JavaScript — Lukas Gisder-Dubé
- What the heck is this in Javascript? — Hridayesh Sharma
- This and Bind In Javascript — Brian Barbour
- 3 Techniques for Maintaining Your Sanity Using “This” in JavaScript — Carl
- Mastering the JavaScript “this” Keyword — Aakash Srivastav
- This binding in JavaScript – 4. New binding — Spyros Argalias
- A quick intro to ‘this’ in JavaScript — Natalie Smith
- A conversation with the ‘this’ keyword in Javascript — Karen Efereyan
- What are call(), apply() and bind() in JavaScript — Amitav Mishra
- Understanding ‘this’ binding in JavaScript — Yasemin Cidem
- Top 7 tricky questions of ‘this’ keyword
Videos
- JavaScript call, apply and bind — techsith
- JavaScript Practical Applications of Call, Apply and Bind functions— techsith
- JavaScript (call, bind, apply) — curious aatma
- Understanding Functions and ‘this’ In The World of ES2017 — Bryan Hughes
- bind and this - Object Creation in JavaScript - FunFunFunction
- JS Function Methods call(), apply(), and bind() — Steve Griffith
- call, apply and bind method in JavaScript — Akshay Saini
- .[Javascript Interview Questions ( Call, Bind and Apply ) - Polyfills, Output Based, Explicit Binding - Roadside Coder] (https://youtu.be/VkmUOktYDAU?si=SdvLZ8FBmephPxjS)
⬆ Back to Top
16. new, Constructor, instanceof and Instances
Articles
⬆ Back to Top
17. Prototype Inheritance and Prototype Chain
Reference
Articles
Videos
Books
⬆ Back to Top
18. Object.create and Object.assign
Reference
Articles
Videos
⬆ Back to Top
19. map, reduce, filter
Articles
- JavaScript Functional Programming — map, filter and reduce — Bojan Gvozderac
- Learn map, filter and reduce in Javascript — João Miguel Cunha
- JavaScript’s Map, Reduce, and Filter — Dan Martensen
- How to Use Map, Filter, & Reduce in JavaScript — Peleke Sengstacke
- JavaScript — Learn to Chain Map, Filter, and Reduce — Brandon Morelli
- Javascript data structure with map, reduce, filter and ES6 — Deepak Gupta
- Understanding map, filter and reduce in Javascript — Luuk Gruijs
- Functional Programming in JS: map, filter, reduce (Pt. 5) — Omer Goldberg
- JavaScript: Map, Filter, Reduce — William S. Vincent
- Arrow Functions: Fat and Concise Syntax in JavaScript — Kyle Pennell
- JavaScript: Arrow Functions for Beginners — Brandon Morelli
- When (and why) you should use ES6 arrow functions — and when you shouldn’t — Cynthia Lee
- JavaScript — Learn & Understand Arrow Functions — Brandon Morelli
- (JavaScript )=> Arrow functions — sigu
- Javascript.reduce() — Paul Anderson
- Why you should replace forEach with map and filter in JavaScript — Roope Hakulinen
- Simplify your JavaScript – Use .map(), .reduce(), and .filter() — Etienne Talbot
- JavaScript’s Reduce Method Explained By Going On a Diet — Kevin Kononenko
- Difference between map, filter and reduce in JavaScript — Amirata Khodaparast
- Map⇄Filter⇄Reduce↻ — ashay mandwarya
- Finding Your Way With .map() — Brandon Wozniewicz
- How to write your own map, filter and reduce functions in JavaScript — Hemand Nair
- How to Manipulate Arrays in JavaScript — Bolaji Ayodeji
- How to simplify your codebase with map(), reduce(), and filter() in JavaScript — Alex Permyakov
- .map(), .filter(), and .reduce() — Andy Pickle
- Map/Filter/Reduce Crash Course — Chris Achard
- Map, Filter and Reduce – Animated — JavaScript Teacher
- Map, Filter, Reduce and others Arrays Iterators You Must Know to Become an Algorithms Wizard — Mauro Bono
- How to Use JavaScript’s .map, .filter, and .reduce — Avery Duffin
- Javascript performance test - for vs for each vs (map, reduce, filter, find) — Deepak Gupta
- Using .map(), .filter() and .reduce() properly — Sasanka Kudagoda
- Mastering the JavaScript Reduce method ✂️ — sanderdebr
- JavaScript Map – How to Use the JS .map() Function (Array Method) — FreeCodeCamp
Videos
- Map, Filter and Reduce — Lydia Hallie
- Map, Filter and Reduce - Akshaay Saini
- Functional JavaScript: Map, forEach, Reduce, Filter — Theodore Anderson
- JavaScript Array superpowers: Map, Filter, Reduce (part I) — Michael Rosata
- JavaScript Array superpowers: Map, Filter, Reduce (part 2) — Michael Rosata
- JavaScript Higher Order Functions - Filter, Map, Sort & Reduce — Epicop
- [Array Methods 2/3] .filter + .map + .reduce — CodeWithNick
- Arrow functions in JavaScript - What, Why and How — Fun Fun Function
- Learning Functional Programming with JavaScript — Anjana Vakil - JSUnconf
- Map - Parte 2 JavaScript - Fun Fun Function
- Reduce basics - Part 3 of FP in JavaScript - Fun Fun Function
- Reduce Advanced - Part 4 of FP in JavaScript - Fun Fun Function
- reduce Array Method | JavaScript Tutorial - Florin Pop
- map Array Method | JavaScript Tutorial - Florin Pop
- Different array methods in 1 minute | Midudev (Spanish)
⬆ Back to Top
20. Pure Functions, Side Effects, State Mutation and Event Propagation
Articles
Videos
⬆ Back to Top
21. Closures
Reference
Articles
Videos
⬆ Back to Top
22. High Order Functions
Books
Articles
Videos
⬆ Back to Top
23. Recursion
Articles
Videos
⬆ Back to Top
24. Collections and Generators
Reference
Articles
Videos
⬆ Back to Top
25. Promises
Reference
Articles
Videos
⬆ Back to Top
26. async/await
Reference
Books
Articles
Videos
⬆ Back to Top
27. Data Structures
Articles
Videos
⬆ Back to Top
28. Expensive Operation and Big O Notation
Articles
Videos
⬆ Back to Top
29. Algorithms
Articles
Videos
⬆ Back to Top
30. Inheritance, Polymorphism and Code Reuse
Reference
Articles
Videos
⬆ Back to Top
31. Design Patterns
Books
Articles
Videos
⬆ Back to Top
32. Partial Applications, Currying, Compose and Pipe
Books
Articles
Videos
⬆ Back to Top
33. Clean Code
Articles
Videos
⬆ Back to Top
License
This software is licensed under MIT License, See License for more information ©Leonardo Maldonado.