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