Перейти к содержимому

Полное руководство по объектам URL в JavaScript

Введение в объекты URL в JavaScript

JavaScript предоставляет мощный встроенный интерфейс URL для создания, разбора и манипулирования адресами. В этом руководстве мы подробно рассмотрим объект URL, его свойства, методы и способы его использования для улучшения веб-приложений.

Создание и разбор URL с помощью JavaScript

Основы создания URL

Объект URL позволяет создавать и изменять строки адресов. Чтобы создать новый URL, просто передайте строку адреса в качестве аргумента конструктору URL:


javascript
const url = new URL("https://www.w3docs.com");

Разбор компонентов URL

После создания объекта URL вы можете получить доступ к различным его компонентам, таким как протокол, имя хоста и путь:


Output appears here after Run.

Для проверки URL перед обработкой можно использовать статический метод URL.canParse(), который возвращает логическое значение, указывающее, является ли строка допустимым URL.

Манипуляция с объектами URL

Ниже приведен пример, демонстрирующий, как изменить строку запроса URL с помощью URLSearchParams:


Output appears here after Run.

Объяснение

  • Инициализация:
    • Объект URL создается с базовым адресом, который уже содержит параметр запроса (initial=123).
  • Объект URLSearchParams:
    • URLSearchParams инициализируется значением url.search, которое содержит строку запроса из URL.
  • Добавление параметра:
    • Метод .set() используется для добавления нового параметра (key=value) в строку запроса. Если ключ уже существует, его значение обновляется; если нет, пара ключ-значение добавляется.
  • Чтение параметра:
    • Метод .get() извлекает значение параметра, указанного ключом (key), которое затем выводится в консоль.
  • Удаление параметра:
    • Метод .delete() удаляет параметр, указанный ключом (initial). Это демонстрирует, как удалить параметр из строки запроса.
  • Обновление строки запроса URL:
    • После изменения параметров свойство search URL обновляется строковым представлением объекта URLSearchParams.
  • Результат:
    • Наконец, измененный URL выводится в консоль, демонстрируя результат выполненных операций.

Изменение пути и хеша

Ниже приведен фрагмент кода на JavaScript, показывающий, как изменить pathname и hash URL:


Output appears here after Run.

Объяснение

  • Инициализация объекта URL:
    • Объект URL изначально создается из строки, представляющей полный адрес. Этот URL включает pathname, строку запроса и фрагмент hash.
  • Изменение pathname:
    • Свойству pathname объекта URL присваивается новый путь (/path/to/resource). Это свойство указывает путь или маршрут на сервере.
  • Изменение hash:
    • Свойство hash обновляется до значения "section". В URL hash представляет собой закладку внутри страницы, часто используемую для прокрутки к определенному разделу.
  • Вывод изменений:
    • Исходный URL выводится в консоль до изменений, чтобы показать начальное состояние.
    • После изменений новое состояние URL выводится в консоль, чтобы продемонстрировать результаты изменения pathname и hash.

Продвинутое использование объектов URL

Работа с относительными URL

Объект URL также может разрешать относительные URL относительно базового адреса, что особенно полезно для веб-приложений, работающих с динамическими ссылками:


Output appears here after Run.

Работа с кодировкой URL

При работе с URL, содержащими символы, требующие кодирования, объект URL автоматически обрабатывает их, гарантируя корректность адресов:


Output appears here after Run.

Для работы с локальными файлами или blob-объектами метод URL.createObjectURL() генерирует временную строку URL, ссылающуюся на объект в памяти, что полезно для предварительного просмотра изображений или скачивания файлов напрямую из JavaScript.

Практические примеры манипуляции с URL

Отслеживание URL рекламных кампаний

Вы можете использовать объекты URL для эффективного управления адресами рекламных кампаний, которые часто применяются в цифровом маркетинге для отслеживания эффективности различных маркетинговых активностей:


Output appears here after Run.

Интеграция с веб-API

Объекты URL необходимы при отправке запросов к веб-API, так как они гарантируют правильность форматирования и кодирования адресов:


Output appears here after Run.

Современная альтернатива (async/await):

javascript
async function fetchPosts() {
  const apiUrl = new URL("https://jsonplaceholder.typicode.com/posts");
  apiUrl.searchParams.set("userId", "1");
  const response = await fetch(apiUrl);
  const data = await response.json();
  console.log(data[0]); // Outputs the first post by user with userId 1
}

Заключение

Объект URL в JavaScript — это мощный инструмент для решения всех задач, связанных с манипуляцией и анализом адресов. Освоив его свойства и методы, разработчики могут оптимизировать взаимодействие веб-приложений с URL, улучшая как функциональность, так и пользовательский опыт. Независимо от того, управляете ли вы сложными структурами адресов, интегрируетесь с API или отслеживаете маркетинговые кампании, объект URL предоставляет надежный и эффективный способ работы с веб-адресами в JavaScript.

Практика

Какие свойства объекта URL в JavaScript используются для разбора конкретных компонентов адреса?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.