Practice JavaScript interview questions in your browser

The same workbench as the Practice Pad desktop app: a real code editor, the tests each question has to pass, three difficulty levels and a progress log. Debounce, throttle, Promise.all are free to practise straight away; Pro unlocks all 24 and the AI panel.

  1. Implement debounce in JavaScript closures, timers, higher-order functions · 9 tests · free
  2. Implement throttle in JavaScript closures, timers, higher-order functions · 9 tests · free
  3. Implement Promise.all in JavaScript promises, async coordination, error handling · 4 tests · free
  4. Implement JSON.stringify in JavaScript recursion, type checking, serialization · 2 tests · Pro
  5. Implement curry in JavaScript closures, partial application, higher-order functions · 2 tests · Pro
  6. Flatten an array without flat() in JavaScript recursion, nested arrays · 8 tests · free
  7. Implement Array.prototype.reduce in JavaScript array iteration, accumulator pattern, prototype methods · 6 tests · Pro
  8. Deep clone an object in JavaScript recursion, object references · 2 tests · free
  9. Implement Array.prototype.filter in JavaScript array iteration, this binding, prototype methods · 4 tests · Pro
  10. Implement an event emitter in JavaScript classes, observer pattern, closures · 2 tests · Pro
  11. Implement memoize in JavaScript closures, caching, higher-order functions · 6 tests · Pro
  12. Implement Function.prototype.call in JavaScript this binding, prototype methods, rest arguments · 5 tests · Pro
  13. Implement deep equal in JavaScript recursion, deep comparison · 5 tests · Pro
  14. Implement promisify in JavaScript promises, callbacks, this binding · 5 tests · Pro
  15. Implement classnames in JavaScript recursion, truthy/falsy checks · 3 tests · Pro
  16. Flatten a nested object in JavaScript recursion, object flattening · 2 tests · Pro
  17. Group and merge an array of objects in JavaScript array grouping, object immutability · 4 tests · Pro
  18. Limit promise concurrency in JavaScript async/await, promises, concurrency control · 7 tests · Pro
  19. Type checking in JavaScript type checking, prototypes · 3 tests · Pro
  20. Implement Promise.any in JavaScript promises, error aggregation · 4 tests · Pro
  21. Deep omit keys from an object in JavaScript recursion, object/array traversal, immutability · 2 tests · Pro
  22. Implement getElementsByTagName in JavaScript recursion, tree traversal · 2 tests · Pro
  23. Format a list with commas 'and' in JavaScript array methods, string formatting · 3 tests · Pro
  24. Filter an array of objects in JavaScript array filtering, objects · 5 tests · Pro

Loading the editor…