Live editor, preview and tests in your browser
Practice React and modern JavaScript by writing code.
React knowledge checks on rendering, state and hooks, plus ECMAScript exercises graded by automated tests. Your code and progress are saved locally.
Your progress
– / 31 solved
setState during renderNew
useState, render loop~3 min
QuizReactmediumEffect that updates its own dependencyNew
useEffect, dependencies, render loop~3 min
QuizReactmediumHow many renders: two setState callsNew
useState, batching, render count~2 min
QuizReacteasyHow many renders: child of a stateful parentNew
re-render, props, render count~2 min
QuizReacteasyHow many renders: memo with an inline objectNew
React.memo, referential equality, render count~3 min
QuizReactmediumHow many times does the effect runNew
useEffect, dependencies~2 min
QuizReacteasyHow many times does the initializer runNew
useState, lazy initializer, performance~3 min
QuizReactmediumStale closure in a timeoutNew
closures, useState, event handlers~3 min
QuizReactmediumMutating state does not re-renderNew
immutability, useState, Object.is~2 min
QuizReacteasyCalling a hook conditionallyNew
rules of hooks, useState~3 min
QuizReactmediumDouble the even numbers
filter, map, arrow functions~5 min
CodeECMAScripteasyEmails of active users
filter, map, objects~5 min
CodeECMAScripteasySort names by age without mutating
sort, map, immutability~10 min
CodeECMAScripteasyTop N scores
sort, slice, immutability~5 min
CodeECMAScripteasyFind the longest word
reduce, strings~5 min
CodeECMAScripteasyAverage of a list
reduce, numbers, rounding~5 min
CodeECMAScripteasyTitle-case a sentence
split, map, join, strings~5 min
CodeECMAScripteasyDetect duplicates
Set, some, indexOf~5 min
CodeECMAScripteasyCount word occurrences
reduce, objects, computed keys~10 min
CodeECMAScripteasyGroup products by category
reduce, objects, grouping~10 min
CodeECMAScripteasyUpdate an object with spread
spread, objects, immutability~5 min
CodeECMAScripteasySplit an array into chunksNew
Array.from, slice, Math.ceil~10 min
CodeECMAScriptmediumPartition by a predicateNew
reduce, tuples, predicates~10 min
CodeECMAScriptmediumMost frequent valuesNew
Map, sort, frequency counting~15 min
CodeECMAScriptmediumCompose functions with pipeNew
higher-order functions, reduce, rest parameters~10 min
CodeECMAScriptmediumParse a query stringNew
split, reduce, decodeURIComponent~15 min
CodeECMAScriptmediumDeep flatten a nested array
recursion, reduce, Array.isArray~15 min
CodeECMAScripthardFlatten an object to dotted keys
recursion, Object.entries, reduce~20 min
CodeECMAScripthardDeep equality
recursion, Object.is, Object.keys~20 min
CodeECMAScripthardMemoize a function
closures, Map, higher-order functions~15 min
CodeECMAScripthardCurry a function
closures, rest parameters, Function.length~20 min
CodeECMAScripthard

