mediumFeatured
Implementing debounce
Debouncing controls how often a function runs over time. When debounced with a wait of X ms, the callback runs only after X ms have passed since the debounced function was last called (e.g. elevator door: it closes only after you stop pressing 'Door open' for X duration). Implement debounce(callback, wait) that returns a function with debounced invocations.
DebouncingClosuressetTimeoutclearTimeoutHigher-Order Functions+3
Added Jan 31, 2026
easyFeatured
DOM Manipulation: Build a Dynamic List
Practice core DOM APIs by building a simple interactive list. Use getElementById or querySelector to find elements, createElement and appendChild to add items, and event delegation to handle clicks. Reinforces how the DOM tree works and how to manipulate it with vanilla JavaScript.
DOM treegetElementByIdquerySelector / querySelectorAllcreateElementappendChild+4
Added Jan 25, 2026
mediumFeatured
Implementing classNames
Build a utility function to conditionally join CSS class names together. Learn about rest parameters, type checking, recursion, object iteration, and more while implementing this commonly-used utility function.
Rest ParametersType CheckingTruthy/Falsy ValuesObject IterationArray Handling+8
Added Dec 15, 2024
Want to Contribute?
Have a great coding challenge idea or want to see more challenges? Feel free to suggest new challenges!
Suggest a Challenge