В этом руководстве вы узнаете, как использовать URLSearchParams для получения параметров строки запроса в JavaScript.
Чтобы получить строку запроса, вы можете получить доступ к свойству search объекта location :
location.search
Предполагая, что значение location.search равно:
'?type=list&page=20'
Для работы со строкой запроса можно использовать объект URLSearchParams.
const urlParams = new URLSearchParams(location.search);
URLSearchParams — это повторяемый объект, поэтому вы можете использовать структуру for...of для перебора его элементов, которые являются параметрами строки запроса:
const urlParams = new URLSearchParams(location.search);
for(const [key, value] of urlParams) {
console.log(`${key}:${value}`);
}
Выход:
type:list page:20
Полезные методы
У URLSearchParams есть несколько полезных методов, которые возвращают итераторы ключей, значений и записей параметров:
keys()возвращает итератор, который перебирает ключи параметров.values()возвращает итератор, который перебирает значения.entries()возвращает итератор, который выполняет итерацию по парам (ключ, значение) параметров.
keys()
В следующем примере метод keys() используется для вывода списка всех имен параметров строки запроса:
const urlParams = new URLSearchParams('?type=list&page=20');
for(const key of urlParams.keys()) {
console.log(key);
}
Выход:
type page
values()
В следующем примере метод keys() используется для вывода списка всех значений параметров строки запроса:
const urlParams = new URLSearchParams('?type=list&page=20');
for(const value of urlParams.values()) {
console.log(value);
}
Выход:
list 20
entries()
В следующем примере используется метод entries() для вывода списка всех пар ключ/значение параметра строки запроса:
const urlParams = new URLSearchParams('?type=list&page=20');
for(const entry of urlParams.entries()) {
console.log(entry);
}
Выход:
["type", "list"] ["page", "20"]
Проверьте, существует ли параметр строки запроса
Метод URLSearchParams.has() возвращает значение true, если существует параметр с указанным именем.
const urlParams = new URLSearchParams('?type=list&page=20');
console.log(urlParams.has('type')); // true
console.log(urlParams.has('foo')); // false
Выход
true false
Заключение
URLSearchParamsпредоставляет интерфейс для работы с параметрами строки запроса.URLSearchParamsявляется итерируемым, поэтому вы можете использовать конструкциюfor...ofдля итерации по параметрам строки запроса.- Метод
has()объектаURLSearchParamsопределяет, существует ли параметр с указанным именем.
