← All languages
JavaScript
The language every dApp front-end runs on — executed for real in a sandbox.
Theory — 50 written topics
Prefer to read first? The written JavaScript topics and their multiple-choice questions now live under the Learn tab.
Open JavaScript theory →Easy
Lessons 1-20 — fundamentals
- 1. let, const & typesDeclare values that never change.
- 2. Functions & returnYour first reusable block.
- 3. Arrow functionsShorter syntax, same idea.
- 4. Template literalsInterpolate values into strings.
- 5. if / elseBranch on a condition.
- 6. for loopsRepeat work over a range.
- 7. Arrayspush, length, index access.
- 8. ObjectsKey/value records.
- 9. DestructuringPull fields out of objects and arrays.
- 10. Spread & restCopy and merge without mutating.
- 11. Array.mapTransform every element.
- 12. Array.filterKeep only what matches.
- 13. Array.reduceFold a list into one value.
- 14. find & includesSearch a list.
- 15. String methodsslice, toUpperCase, startsWith.
- 16. Numbers & roundingtoFixed and Math helpers.
- 17. Truthiness & defaults?? vs ||.
- 18. Optional chainingRead deep fields safely.
- 19. SortingComparator functions.
- 20. JSONSerialize and parse.
Medium
Lessons 21-37 — patterns and real code
- 21. ClosuresFunctions that remember.
- 22. Objects with methods`this` inside object literals.
- 23. ClassesConstructor and methods.
- 24. extends & superSubclass an existing class.
- 25. Getters & staticComputed properties.
- 26. Map & SetKeyed collections and uniqueness.
- 27. throw & try/catchFail loudly, recover gracefully.
- 28. PromisesValues that arrive later.
- 29. async / awaitWrite async code that reads sequentially.
- 30. Promise.allRun requests in parallel.
- 31. Handling async failurestry/catch around await.
- 32. Module thinkingSmall units with one job.
- 33. Immutable updatesNever mutate shared state.
- 34. Higher-order functionsFunctions that take functions.
- 35. DebounceCoalesce rapid calls.
- 36. BigInt for weiToken amounts overflow Number.
- 37. formatUnits by handConvert wei to a human string.
Hard
Lessons 38-50 — advanced and capstone
- 38. GeneratorsPause and resume a function.
- 39. Custom iterablesSymbol.iterator.
- 40. Proxy objectsIntercept property reads.
- 41. MemoizationCache pure results.
- 42. Deep clone & equalityRecursive structures.
- 43. Event emitterPub/sub in 20 lines.
- 44. Async queueSerialize concurrent work.
- 45. Function selectorHow calldata starts.
- 46. Mock JSON-RPC clientWhat a provider really does.
- 47. Polling with backoffWait for a confirmation.
- 48. Transaction state machineModel status transitions explicitly.
- 49. Merkle-style foldingPairwise hashing in JS.
- 50. Capstone — wallet portfolioEverything together.