33 Concepts Every JavaScript Developer Should Know
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!
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:
- 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
β¬ Back to Top
β¬ Back to Top
3. Value Types and Reference Types
β¬ Back to Top
4. Implicit, Explicit, Nominal, Structuring and Duck Typing
β¬ Back to Top
β¬ Back to Top
6. Function Scope, Block Scope and Lexical Scope
β¬ Back to Top
7. Expression vs Statement
β¬ Back to Top
8. IIFE, Modules and Namespaces
β¬ Back to Top
9. Message Queue and Event Loop
β¬ Back to Top
10. setTimeout, setInterval and requestAnimationFrame
β¬ Back to Top
β¬ Back to Top
12. Bitwise Operators, Type Arrays and Array Buffers
β¬ Back to Top
β¬ Back to Top
14. Factories and Classes
β¬ Back to Top
15. this, call, apply and bind
- π 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
- π call(), apply() and bind() methods in JavaScript
- π 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
- π call() β MDN
- π bind() β MDN
- π apply() β MDN
- π What is 'this' in JavaScript? β Daniel Li
- π Let me explain to you what is this. (Javascript) β Jason Yu
- π Understanding the βthisβ Keyword in JavaScript β Pavan
β¬ Back to Top
16. new, Constructor, instanceof and Instances
β¬ Back to Top
17. Prototype Inheritance and Prototype Chain
β¬ Back to Top
18. Object.create and Object.assign
β¬ Back to Top
- π 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
- π A possibility to use Async/Await for filter(), find(), forEach(), map() and reduce() methods in Array β Ruwan Geeganage
- π 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
- π₯ 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
β¬ Back to Top
20. Pure Functions, Side Effects and State Mutation
β¬ Back to Top
β¬ Back to Top
β¬ Back to Top
β¬ Back to Top
24. Collections and Generators
β¬ Back to Top
β¬ Back to Top
β¬ Back to Top
β¬ Back to Top
28. Expensive Operation and Big O Notation
β¬ Back to Top
β¬ Back to Top
30. Inheritance, Polymorphism and Code Reuse
β¬ Back to Top
β¬ Back to Top
32. Partial Applications, Currying, Compose and Pipe
β¬ Back to Top
β¬ Back to Top