All JavaScript Problems

67 problems across 8 categories

Problems67 problems

Closure CounterEasy

Understand closures with a counter factory

This BindingMed

Understand how "this" works in different contexts

Prototype ChainMed

Understand prototypal inheritance

Hoisting DemoEasy

Understand variable and function hoisting

Scope ChainMed

Understand lexical scope

Implement call()Med

Implement Function.prototype.call

Implement apply()Med

Implement Function.prototype.apply

Implement bind()Hard

Implement Function.prototype.bind

Implement new OperatorHard

Implement your own new operator

Implement Object.createMed

Implement Object.create

Implement instanceofMed

Implement the instanceof operator

typeof vs instanceofEasy

Understand the difference between typeof and instanceof

Execution ContextMed

Understand JavaScript execution context

Promise ChainingEasy

Sequential async with promises

Async/Await BasicsEasy

Modern async syntax

Sequential vs ParallelMed

Compare async execution patterns

Implement Array.mapEasy

Build your own map

Implement Array.filterEasy

Build your own filter

Implement Array.reduceMed

Build your own reduce

Implement Array.flatMed

Build your own flat

Implement Array.forEachEasy

Build your own forEach

Implement Array.findEasy

Build your own find

Implement Array.findIndexEasy

Build your own findIndex

Implement Array.someEasy

Build your own some

Implement Array.everyEasy

Build your own every

Implement Array.includesEasy

Build your own includes

Implement Array.indexOfEasy

Build your own indexOf

Implement Array.flatMapMed

Build your own flatMap

Implement Array.concatEasy

Build your own concat

Implement Array.sliceEasy

Build your own slice

Implement Array.reverseEasy

Build your own reverse (in-place)

Implement Array.joinEasy

Build your own join

Implement Array.fillEasy

Build your own fill

Implement DebounceMed

Delay until events stop

Implement ThrottleMed

Limit execution rate

Implement Deep CloneMed

Deep copy objects

Implement MemoizeMed

Cache function results

Implement _.once()Easy

Function that runs only once

Implement memoizeOne()Med

Cache only the last result

Implement promisify()Med

Convert callback to Promise

Implement sleep()Easy

Promise-based delay

Implement CurryMed

Transform f(a,b,c) to f(a)(b)(c)

Implement ComposeMed

Combine functions right-to-left

Implement PipeMed

Combine functions left-to-right

Curry with PlaceholderHard

Curry with placeholder support

Implement _.partial()Med

Partial application of functions

Flatten ThunkHard

Flatten nested lazy functions

Event EmitterMed

Pub/sub pattern

Event DelegationEasy

Efficient event handling

DOM Wrapper with ChainingMed

jQuery-style method chaining

Deep EqualMed

Compare objects deeply

Deep MergeMed

Merge objects recursively

Get/Set Nested PropertyEasy

Access deep properties safely

Implement Object.assign()Easy

Shallow copy object properties

Implement Object.is()Easy

Strict equality with edge cases

Shallow vs Deep FreezeMed

Make objects immutable

Implement Promise.allMed

Parallel execution

Implement Promise.raceEasy

First to settle wins

Implement PromisifyMed

Convert callbacks to promises

Implement Promise.allSettledMed

Wait for all promises regardless of outcome

Implement Promise.anyMed

First fulfilled promise wins

Implement Promise.finallyEasy

Always runs after promise settled

Auto-retry PromiseMed

Retry failed promises automatically

Promise with TimeoutEasy

Reject if promise takes too long

Throttle PromisesHard

Limit concurrent promise execution

Sequence Async TasksMed

Run promises sequentially

Create Your Own PromiseHard

Implement Promise from scratch