Essential storage keeps sign-in and learning features working. Google Analytics measures visits; Microsoft Clarity records interactions to help us improve usability. Both are optional and stay off until you choose. Read our privacy policy.
Write down the input contract and the failure cases before coding.
tests
Runs the open file in a restricted browser worker
RUNTIME OUTPUT
Ready to run the file open above against 1 test.
LEARN FROM THE SOLUTION
Why the solution works.
A precise omission rule avoids the common `if (!value)` bug that accidentally removes zero. URLSearchParams handles encoding and repeated delimiter rules, so user-entered characters cannot corrupt the URL format.
What this exercise teaches
Object entries
URLSearchParams
Value contracts
A PRACTICAL PLAN
Work through Build a safe query string with intent.
Translate the contract.Turn the requirements into a short checklist before editing your-solution.js.
Use the example as evidence.Predict the result for the supplied input, then add one boundary case such as an empty value, a limit, or unexpected input.
Review the implementation.Compare your choices against solution.js only after a real attempt.
EXERCISE FAQ
Before you move on.
What does “Build a safe query string” teach?
This intermediate JavaScript exercise focuses on Object entries, URLSearchParams, Value contracts. Its requirements define the exact behavior to implement before you write code.
How should I validate this JavaScript solution?
Start with the displayed example input and expected output, then test a boundary case suggested by the requirements. Open your-solution.js and select Run code. The browser executes that file in an isolated worker against the visible test cases.
When should I open the reference solution?
Attempt Build a safe query string first. Then open the read-only solution file to compare the contract, edge-case handling, and implementation choices—not simply to copy the final code.