honeysuck
⌕
EXPLORE / JAVASCRIPT

JavaScript course

Understand the idea. Try the code. Take one small step forward.

01—04 · Language foundations

Learn types, control flow, collections and closures.

05—08 · Browser interaction

Connect DOM, storage and requests with recovery paths.

09—10 · Structure & verification

Understand objects and organize code with modules and tests.

11—16 · Applied interaction topics

Handle time zones, text rules, URLs, focus races and migrations.

Study the mechanism, run the example, then attempt the challenge before opening the solution. Every chapter includes verification and common boundaries.

↗

01 · Values, types and explicit conversion

Distinguish value types from variable bindings and explain why adding form values can concatenate text.

Read lesson →
↗

02 · Conditions, loops and boundary reasoning

Translate rules into mutually exclusive branches and test loops for missing or repeated work.

Read lesson →
↗

03 · Strings, arrays and data transformations

Express data processing with filtering, mapping and lookup while separating display formatting from stored data.

Read lesson →
↗

04 · Functions, scope and closures

Extract repeated logic into testable functions and use closures for isolated state.

Read lesson →
↗

05 · DOM, events and safe rendering

Update state from events and render from state rather than treating visible text as the data source.

Read lesson →
↗

06 · JSON, storage and recovery

Design a validated persistent format and recover when stored data is malformed.

Read lesson →
↗

07 · Promises, async ordering and errors

Predict synchronous code, promise reactions and timers, and correctly await failures.

Read lesson →
↗

08 · Fetch, cancellation and UI states

Distinguish network failures from HTTP errors and model loading, success, empty and error states.

Read lesson →
↗

09 · Objects, this and prototypes

Understand method receivers and shared prototypes, choosing plain records or classes appropriately.

Read lesson →
↗

10 · Modules, debugging and repeatable tests

Separate calculation from UI effects and locate bugs with minimal reproductions and assertions.

Read lesson →
↗

11 · Dates, time zones and localized formatting

Distinguish instants from calendar dates and avoid treating display strings as calculation data.

Read lesson →
↗

12 · Regular expressions, boundaries and validation

Design small explainable patterns and use counterexamples to distinguish matching from full validation.

Read lesson →
↗

13 · URLs and shareable page state

Update query parameters without losing other state and distinguish navigation from history updates.

Read lesson →
↗

14 · Debugging clicks, focus and event ordering

Reproduce a disclosure whose options cannot be clicked and avoid removing targets before activation.

Read lesson →
↗

15 · Async search, stale responses and state

Protect the UI with request identity and distinguish loading, success, empty, failure and cancellation.

Read lesson →
↗

16 · Validation and versioned data migrations

Convert unreliable input into an explicit schema and protect migrations with repeatable checks.

Read lesson →