Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
33 Concepts Every JavaScript Developer Should Know
PRs Welcome License MIT
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. Feel free to contribute.
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
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