WTF, JavaScript?!
Prove you actually know it.

268 challenges that will make you question everything you think you know about this language. 99 hands-on coding problems judged by a merciless sandbox — the rest are brutal multiple choice and drag-and-drop mind games. Every challenge ships a hint. Using it is between you and your ego.

🕶️
Gigachad-tier JavaScript

casuals welcome — egos enter at their own risk

📅 Today's daily →🎮 Play a gameBrowse problemsStart examLeaderboard

Topics

ArraysType CoercionQuiz: JS QuestionsMathDestructuringObjectsURL & Web APIsSecurityLoopsTypeScriptFloating PointPaymentsProxy & ReflectStrict ModeYDKJS BookWTF QuirksSorting AlgorithmsInterview ClassicsAlgorithms & RecursionPatterns & PerformanceWeb PlatformEvent Loop & MemoryUnit TestingScope & HoistingDOM EventsTesting Lifecycle

Play in your terminal

npm install -g wtfjavascript   # or: bun add -g wtfjavascript
wtfjs            # full styled quiz in your terminal
wtfjs --topic "Proxy & Reflect"
npx wtfjavascript              # or: bunx wtfjavascript (zero-install)
wtfjs — answering challenges from the command line
$ wtfjs
wtf(js) wtf, JavaScript?! — prove you actually know it
Your name: ada
1/8 Hard The == algorithm, step by step · Type Coercion
│ console.log(null == undefined, null == 0);
A. true false B. true true C. false false
Answer (A-D, 'h' hint, 's' skip): a
✔ Accepted (1 try) — null only pairs with undefined
2/8 Medium Swap two values without a temp variable
[Enter] open $EDITOR · 'r' run only · 'h' hint · 's' skip:
… your own editor opens — write, save, close …
✔ Accepted (1 try) Score so far: 200

Read the books behind the pain

You Don't Know JS Yet: Get Started — book coverYou Don't Know JS Yet: Scope & Closures — book cover
You Don't Know JS Yet — Kyle Simpson

The book series that goes deeper than any challenge here can. Scope, closures, this, coercion — explained properly, from the spec up. The entire series is free to read on GitHub, with print editions available from the same page.

Read the series →

Acknowledgments

Every challenge here stands on work that others gave away for free. Lydia and Kyle spent years writing the questions and books that teach this language to anyone willing to learn — hours of unpaid, careful work done purely to help the community. If these challenges taught you something, it's because they taught us first. Thank you. Go star their work.

Built by