JavaScript Challenges

JavaScript Quiz & Practice

The language that runs the web — and bites developers every day.

JavaScript has more quirks per line than any other language. typeof null, hoisting, closures, async traps — these aren't tricks, they're real bugs in real codebases. Solve one JS shot a day to build the instincts that separate senior engineers from the rest.

47 Total Shots
12 Junior
20 Mid-Level
15 Senior

5 Must-Know JavaScript Concepts

The topics that come up again and again in interviews — and in bugs.

🔒
Closures & Scope
Lexical scope, variable capture, and the IIFE pattern.
Hoisting
How var, let, const, and function declarations get lifted.
Event Loop & Async
Microtasks, macrotasks, Promises, and async/await order.
🔗
Prototypal Inheritance
__proto__, Object.create(), and the prototype chain.
🧩
Type Coercion
== vs ===, falsy values, and typeof edge cases.

JavaScript Masterclass Guides

Deep dives into tricky concepts to help you ace your interviews.

Top 10 JavaScript Challenges

Start here — these are the shots developers get wrong the most.

Get the Daily JavaScript Shot in Your Inbox

One JavaScript challenge every morning. No fluff, no newsletter filler. Just the shot and the explanation.

📫 No spam. Unsubscribe any time.

All JavaScript Challenges (47)

Every JavaScript shot ever published on CodeShot.

1 JavaScript This Keyword — What does this output? 2 JavaScript Destructuring — What is logged? 3 JavaScript Rest Properties — What does this output? 4 JavaScript Event Loop — What is the Output? 5 JavaScript Template Literals — What is logged? 6 JavaScript Promises — What Does This Output? 7 JavaScript Try...Finally — Which Value is Returned? 8 JavaScript Map vs WeakMap — What is the Output? 9 JavaScript Object Spread — What is the Final Output? 10 JavaScript Object Deletion — What Happens Here? 11 JavaScript Promises — What is the Final Output? 12 JavaScript Hoisting — Can You Call This Function? 13 JavaScript Arrays — What happens at a non-existent index? 14 JavaScript Array.sort() — Why is the Order Wrong? 15 JavaScript Event Listeners — Spot the Memory Leak Bug 16 JavaScript Sets — Can You Spot the Bug? 17 JavaScript Comparison Operators — Spot the Bug! 18 JavaScript Async/Await — Spot the Bug! 19 JavaScript Timers — Spot the Bug: setInterval vs setTimeout 20 JavaScript Array Map — Why is this console.log ignored? 21 JavaScript Type Coercion — What does this output? 22 JavaScript Closures — What Gets Logged? 23 JavaScript Array.indexOf — What does this print? 24 JavaScript Truthy & Falsy — What is the Output? 25 JavaScript Object.freeze — What gets logged? 26 JavaScript Type Coercion — What does this output? 27 JavaScript Type Coercion — What does this print? 28 JS Generator Function - What does next().value print twice? 29 JavaScript Map Size 30 JavaScript Nullish Coalescing 31 JavaScript Array Method - Unraveling Depth 32 JS Closure - What gets logged? 33 javascript Variable Shadowing 34 JavaScript String Concatenation 35 JavaScript Default Parameters 36 JavaScript Equality - What's the Default Value? 37 JavaScript Closures - What gets logged in a closure? 38 JavaScript Truthy Values 39 JS Conditional Operators 40 JavaScript NaN Type 41 JavaScript Mutable Reference Error 42 JavaScript Giant Numbers 43 JavaScript + Empty Array + Object 44 JavaScript Array Concatenation 45 JavaScript Timers: What GetsLogged? 46 JavaScript Float Precision Issue 47 JavaScript Null Type Inference