Write down the input contract and the failure cases before coding.
tests
RUNTIME OUTPUT
Ready to run the file open above against 1 test.
Runs the open file in a restricted browser worker
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.