Pebellslearn by building
RoadmapsMatrixCoursesSandboxSign in

Course details

Javascript

Learn the core of the language that makes web pages respond. You will declare variables, know every data type, predict how values convert and compare, and store data in arrays, objects, maps and sets — all on one small music playlist.

Ready to learn17 sections · 74 lessons
Start learning

Course curriculum

Introduction to JavaScript3 lessons

Meet the language that makes pages respond: its job next to HTML and CSS, how its yearly editions are named, and the three places you can run it.

  1. What is JavaScript?12 min
  2. History and Versions12 min
  3. How to Run JavaScript12 min
All about Variables4 lessons

Choose between const, let and var, follow the naming rules, see where each name is visible, and predict what hoisting does before a line runs.

  1. var, let and const12 min
  2. Naming Rules12 min
  3. Variable Scope: Global, Function and Block12 min
  4. Hoisting12 min
Data Types5 lessons

Meet the seven primitive types and objects: strings, numbers, booleans, undefined, null, BigInt and Symbol, how objects are shared by reference, and how typeof reports them.

  1. Strings, Numbers and Booleans12 min
  2. undefined and null12 min
  3. BigInt and Symbol12 min
  4. Objects12 min
  5. The typeof Operator12 min
Type Casting3 lessons

Tell deliberate conversion from hidden coercion, use Number, String, Boolean and parseInt with confidence, and predict what + and the other operators do with mixed types.

  1. Conversion vs Coercion12 min
  2. Explicit Type Casting12 min
  3. Implicit Type Casting12 min
Data Structures4 lessons

Store ordered items in arrays, turn data into text and back with JSON, count and deduplicate with Map and Set, and attach notes to objects with WeakMap and WeakSet.

  1. Arrays12 min
  2. JSON12 min
  3. Map and Set12 min
  4. WeakMap and WeakSet12 min
Equality Comparisons3 lessons

Predict loose equality's conversions, make strict equality your default, and use Object.is and SameValueZero for the edge cases of NaN and signed zero.

  1. Loose Equality (==)12 min
  2. Strict Equality (===)12 min
  3. Object.is and SameValueZero12 min
Loops and Control Flow8 lessons

Run the same code over a range, an array, or an object's keys, stop or skip a loop early, choose between if/else and switch, and raise and catch errors on purpose.

  1. The for Loop12 min
  2. while and do...while10 min
  3. The for...of Loop10 min
  4. The for...in Loop10 min
  5. break and continue10 min
  6. if...else and switch12 min
  7. throw and Error Objects10 min
  8. try / catch / finally12 min
Expressions & Operators7 lessons

Run the arithmetic and unary operators including BigInt, assign with shortcuts like ??=, compare numbers and strings, short-circuit with logical operators, flip bits directly, branch with the ternary operator, and default or gather function parameters.

  1. Arithmetic and Unary Operators12 min
  2. Assignment Operators12 min
  3. Comparison and String Operators12 min
  4. Logical Operators12 min
  5. Bitwise Operators12 min
  6. Ternary and Comma Operators12 min
  7. Default and Rest Parameters12 min
Functions6 lessons

Declare functions and default parameters, write arrow functions and know when not to, lock away private state with an IIFE, read the arguments object, trace the call stack, and use the built-in functions every file already has.

  1. Function Declarations and Parameters12 min
  2. Arrow Functions12 min
  3. IIFEs10 min
  4. The arguments Object10 min
  5. Scope and the Function (Call) Stack10 min
  6. Built-in Functions10 min
The DOM and Strict Mode4 lessons

Opt into strict mode so JavaScript stops hiding typos and unsafe assignments, then find elements in the page's tree, change what they show, and react to clicks and other events.

  1. Strict Mode12 min
  2. Selecting and Reading the DOM12 min
  3. Modifying the DOM12 min
  4. DOM Events12 min
Using the `this` Keyword4 lessons

Trace this through object methods, standalone calls, event handlers and arrow functions, then take control of it directly with call, apply and bind.

  1. this in a Method and in a Function12 min
  2. this Used Alone, and in Event Handlers12 min
  3. this in Arrow Functions12 min
  4. Explicit Binding: call, apply and bind12 min
Asynchronous JavaScript7 lessons

Write recursive functions safely, understand lexical scope and closures, trade callback hell for Promises, and read the event loop that decides when async code actually runs — ending with async/await, the readable way to write it all.

  1. Recursion10 min
  2. Lexical Scoping10 min
  3. Closures12 min
  4. Callbacks and Callback Hell12 min
  5. The Event Loop12 min
  6. Promises12 min
  7. async/await14 min
Modules in JavaScript2 lessons

Compare CommonJS's require/module.exports, still everywhere in Node, with the ESM import/export syntax that browsers and modern tooling use, and know the real differences between them.

  1. CommonJS Modules12 min
  2. ESM Modules12 min
Iterators and Generators3 lessons

Learn the next()/done/value protocol that powers for...of and spread, make your own objects iterable, then write generator functions that pause and resume with yield instead of building a whole array up front.

  1. Iterables and the Iterator Protocol12 min
  2. Generator Functions12 min
  3. yield and Generator Control Flow12 min
Classes5 lessons

Write a class with a constructor and methods, extend one class from another with super, add shared static members and computed getters/setters, lock private state behind #fields, and see the prototype chain that makes it all work underneath.

  1. Class Syntax and Constructors12 min
  2. Inheritance and super12 min
  3. Getters, Setters and Static Members12 min
  4. Private Fields12 min
  5. Object Prototype and Prototypal Inheritance12 min
Working with APIs2 lessons

Request and send data with fetch and Promises, handle HTTP errors that don't reject on their own, and read XMLHttpRequest's older event-based pattern well enough to recognise it in existing code.

  1. The Fetch API10 min
  2. XMLHttpRequest8 min
Memory Management and DevTools4 lessons

Follow a value through allocation, use and release, see what makes an object reachable or eligible for collection, take a first tour of the browser's DevTools panels, and recognise the everyday patterns that leak memory.

  1. Memory Lifecycle10 min
  2. Garbage Collection10 min
  3. Debugging with DevTools10 min
  4. Debugging Memory Leaks10 min