leonardomso /33-js-concepts

📜 33 JavaScript concepts every developer should know.

★ 66,524⑂ 9,134👁 1,182⑃ 536● 122▤ 0◈ 0
JavaScriptMITCreated 2018-09-0433jsconcepts.com/
66,524
stars
+-1
9,134
forks
1,182
watchers
536
prs
122
issues
0
releases
0
discussions

README

33 Concepts Every JavaScript Developer Should Know
  



  Read the Full Guide •
  Concepts •
  Translations •
  Contributing



  Recognized by GitHub as one of the top open source projects of 2018!


---

 About

This repository helps developers master core JavaScript concepts. Each concept includes clear explanations, practical code examples, and curated resources.

Start learning at 33jsconcepts.com →

---

 Concepts

 Fundamentals

- Primitive Types  
  Learn JavaScript's 7 primitive types: string, number, bigint, boolean, undefined, null, and symbol. Understand immutability, typeof quirks, and autoboxing.

- Primitives vs Objects  
  Learn how JavaScript primitives and objects differ in behavior. Understand immutability, call-by-sharing semantics, why mutation works but reassignment doesn't, and how V8 actually stores values.

- Type Coercion  
  Learn JavaScript type coercion and implicit conversion. Understand how values convert to strings, numbers, and booleans, the 8 falsy values, and how to avoid common coercion bugs.

- Equality Operators  
  Learn JavaScript equality operators == vs ===, typeof quirks, and Object.is(). Understand type coercion, why NaN !== NaN, and why typeof null returns 'object'.

- Scope and Closures  
  Learn JavaScript scope and closures. Understand the three types of scope, var vs let vs const, lexical scoping, the scope chain, and closure patterns for data privacy.

- Call Stack  
  Learn how the JavaScript call stack tracks function execution. Understand stack frames, LIFO ordering, execution contexts, stack overflow errors, and debugging with stack traces.

 Functions & Execution

- Event Loop  
  Learn how the JavaScript event loop handles async code. Understand the call stack, task queue, microtasks, and why Promises always run before setTimeout().

- IIFE, Modules & Namespaces  
  Learn how to organize JavaScript code with IIFEs, namespaces, and ES6 modules. Understand private scope, exports, dynamic imports, and common module mistakes.

 Web Platform

- DOM  
  Learn how the DOM works in JavaScript. Understand how browsers represent HTML as a tree, select and manipulate elements, traverse nodes, and optimize rendering performance.

- Fetch API  
  Learn how to make HTTP requests with the JavaScript Fetch API. Understand GET, POST, response handling, JSON parsing, error patterns, and AbortController for cancellation.

- Web Workers  
  Learn Web Workers in JavaScript for running code in background threads. Understand postMessage, Dedicated and Shared Workers, and transferable objects.

 Object-Oriented JavaScript

- Factories and Classes  
  Learn JavaScript factory functions and ES6 classes. Understand constructors, prototypes, private fields, inheritance, and when to use each pattern.

- this, call, apply, bind  
  Learn how JavaScript's 'this' keyword works and how to control context binding. Understand the 5 binding rules, call/apply/bind methods, arrow functions, and common pitfalls.

- Object Creati

Top issues

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON