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.
108
Total Shots
31
Junior
45
Mid-Level
32
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.
#1
JavaScript Array.map() — What is the Output?
#2
JavaScript Async/Await — What does this output?
#3
JavaScript Array.sort() — What is the Output?
#4
JavaScript Spread Operator — What Does This Output?
#5
JavaScript Objects — Can you use forEach?
#6
JavaScript null vs undefined — Are they the same?
#7
JS Event Listeners — Do They Slow Down Your Page?
#8
JavaScript Object Keys — Same as for...in?
#9
JavaScript Scope — let vs var: Are they the same?
#10
JavaScript try/catch — Does it catch all errors?
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 (108)
Every JavaScript shot ever published on CodeShot.
1
JavaScript Array.map() — What is the Output?
2
JavaScript Async/Await — What does this output?
3
JavaScript Array.sort() — What is the Output?
4
JavaScript Spread Operator — What Does This Output?
5
JavaScript Objects — Can you use forEach?
6
JavaScript null vs undefined — Are they the same?
7
JS Event Listeners — Do They Slow Down Your Page?
8
JavaScript Object Keys — Same as for...in?
9
JavaScript Scope — let vs var: Are they the same?
10
JavaScript try/catch — Does it catch all errors?
11
JavaScript Arrow Functions — Interchangeable or Not?
12
JavaScript Object.assign — What is the output?
13
JavaScript Spread Operator — What does this print?
14
JavaScript Closures — What is the Output?
15
JavaScript Nullish Coalescing — What is logged?
16
JavaScript Closures — What Does This Output?
17
JavaScript Reference Equality — What is the Output?
18
JavaScript Floating Point — What does this print?
19
JavaScript Optional Chaining — What Happens With Null?
20
JavaScript Array.forEach — Modifying Arrays While Looping?
21
JavaScript Promise.all — What Happens on Single Rejection?
22
JavaScript Block Scope — Can you reassign a const?
23
JavaScript Array.map() — What Happens With Empty Arrays?
24
JavaScript Promises — What Happens to Unhandled Rejections?
25
JavaScript Top-Level Await — Does it Work Outside Async?
26
JavaScript String Manipulation — What does this output?
27
JavaScript Array.find() — What is the output?
28
JavaScript Memoization — What does this output?
29
JavaScript Higher-Order Functions — What is the Output?
30
JavaScript Object Methods — What is Logged?
31
JavaScript Generators — What does this output?
32
JavaScript Destructuring — What does this output?
33
JavaScript Recursion — Spot the Bug in this Factorial!
34
JavaScript Event Handlers — Why is this bug happening?
35
JavaScript Closures — Spot the Memoization Bug!
36
JavaScript Closures — Can You Spot the Debounce Bug?
37
JavaScript DOM Manipulation — Spot the Bug!
38
JavaScript Array.filter — Spot the Bug!
39
JavaScript Shallow Copy — Spot the Bug!
40
JavaScript String.includes() — What does this output?
41
JavaScript Array.reduce() — What is the Output?
42
JavaScript Proxy — What does this print?
43
JavaScript Default Parameters — What is the Output?
44
JavaScript Typeof — What is Logged?
45
JavaScript This Keyword — What Does This Output?
46
JavaScript Inheritance — What Does This Output?
47
JavaScript Equality — Are == and === Interchangeable?
48
JavaScript Async/Await — Separate Thread or Event Loop?
49
JS JSON Methods — Can They Handle All Values?
50
JavaScript Scope — Does var create a new variable in loops?
51
JS Arrays vs Objects — True or False?
52
JavaScript Event Loop — Single-Threaded or Not?
53
JavaScript const — Does it prevent variable change?
54
JavaScript Equality — == vs ===: Which one wins?
55
JavaScript Async Error Handling — .catch() vs try/catch?
56
JavaScript String to Number — Which Method is Better?
57
JavaScript Object Properties — Which Check is Better?
58
JavaScript Async/Await — Sequential vs Parallel?
59
JavaScript Array Checking — Which Method is Better?
60
JavaScript Array Cloning — Which Approach is Correct?
61
JavaScript Sets — What Does This Output?
62
JavaScript This Keyword — What does this output?
63
JavaScript Destructuring — What is logged?
64
JavaScript Rest Properties — What does this output?
65
JavaScript Event Loop — What is the Output?
66
JavaScript Template Literals — What is logged?
67
JavaScript Promises — What Does This Output?
68
JavaScript Try...Finally — Which Value is Returned?
69
JavaScript Map vs WeakMap — What is the Output?
70
JavaScript Object Spread — What is the Final Output?
71
JavaScript Object Deletion — What Happens Here?
72
JavaScript Promises — What is the Final Output?
73
JavaScript Hoisting — Can You Call This Function?
74
JavaScript Arrays — What happens at a non-existent index?
75
JavaScript Array.sort() — Why is the Order Wrong?
76
JavaScript Event Listeners — Spot the Memory Leak Bug
77
JavaScript Sets — Can You Spot the Bug?
78
JavaScript Comparison Operators — Spot the Bug!
79
JavaScript Async/Await — Spot the Bug!
80
JavaScript Timers — Spot the Bug: setInterval vs setTimeout
81
JavaScript Array Map — Why is this console.log ignored?
82
JavaScript Type Coercion — What does this output?
83
JavaScript Closures — What Gets Logged?
84
JavaScript Array.indexOf — What does this print?
85
JavaScript Truthy & Falsy — What is the Output?
86
JavaScript Object.freeze — What gets logged?
87
JavaScript Type Coercion — What does this output?
88
JavaScript Type Coercion — What does this print?
89
JS Generator Function - What does next().value print twice?
90
JavaScript Map Size
91
JavaScript Nullish Coalescing
92
JavaScript Array Method - Unraveling Depth
93
JS Closure - What gets logged?
94
javascript Variable Shadowing
95
JavaScript String Concatenation
96
JavaScript Default Parameters
97
JavaScript Equality - What's the Default Value?
98
JavaScript Closures - What gets logged in a closure?
99
JavaScript Truthy Values
100
JS Conditional Operators
101
JavaScript NaN Type
102
JavaScript Mutable Reference Error
103
JavaScript Giant Numbers
104
JavaScript + Empty Array + Object
105
JavaScript Array Concatenation
106
JavaScript Timers: What GetsLogged?
107
JavaScript Float Precision Issue
108
JavaScript Null Type Inference