Use URLSearchParams to parse and build query strings
const params = new URLSearchParams('?name=John&age=30');
console.log(params.get('name')); // "John"
params.append('city', 'NYC');
console.log(params.toString()); // "name=John&age=30&city=NYC"// Parse URL parameters
const url = 'https://example.com?search=javascript&page=2&sort=date';
const params = new URLSearchParams(url.split('?')[1]);
console.log(params.get('search')); // "javascript"
console.log(params.get('page')); // "2"
// Iterate parameters
params.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// Build query string
const newParams = new URLSearchParams({
query: 'hello world',
limit: 10,
offset: 0
});
const queryString = newParams.toString();
console.log(queryString);
// Update URL without reload
const url = new URL(window.location);
url.searchParams.set('page', '3');
window.history.pushState({}, '', url);const tags = params.getAll('tag');
// Gets array of all 'tag' parametersconst obj = Object.fromEntries(params.entries());Avoid manual query string parsing
// DON'T DO THIS
var params = {};
var query = url.split('?')[1];
var pairs = query.split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
params[pair[0]] = pair[1];
}✓ Works in all modern browsers (IE10+)