TGViewer
Frontend Developer Frontend Developer @frontenddevelopernews · 182 subscribers
Post #44 195
Всем привет!

Сегодня — по горячим следам — хочу разобрать одну проблему, на которую я уже натыкалась как минимум пару раз 😅 Причём код изначально писала не я даже — ко мне просто приходили и говорили: "ничего не работает!"

Думаю, многие из вас знакомы с объектом URL. Подробнее можно почитать здесь:
https://developer.mozilla.org/ru/docs/Web/API/URL/URL

Сигнатура конструктора:
new URL(url, [base])

❗️И вот тут важно быть внимательным — особенно к тому, есть ли слэш `/` в конце base или нет.
Но не только это!

Сравните:

new URL('/clients', 'https://hostname/base').toString(); 
// 👉 https://hostname/clients (куда делся base?)

new URL('clients', 'https://hostname/base').toString();
// 👉 https://hostname/clients (тоже самое)

new URL('/clients', 'https://hostname/base/').toString();
// 👉 https://hostname/clients (и тут его нету)


Но! Если написать вот так:

new URL('clients', 'https://hostname/base/').toString();
// 👉 https://hostname/base/clients ✅


📌 Почему так происходит?

Поведение зависит сразу от двух вещей:

1. Заканчивается ли base на /
2. Начинается ли url с /

Если url начинается с /, он считается абсолютным путём от корня хоста, и весь путь из base будет проигнорирован — даже если base заканчивается слэшем.

Поэтому:

* '**/clients**' → абсолютный путь, затирает всё из base кроме хоста
* '**clients**' → относительный путь, добавляется к base если путь в base заканчивается со /

---

🧠 Вывод:

* Один / в начале или конце может полностью изменить итоговую ссылку!

---

📚 Подробнее о том, какие есть свойства у объекта URL, можно почитать здесь:
https://htmlacademy.ru/blog/js/url
MDN Web Docs URL() - Интерфейсы веб API | MDN Конструктор URL() возвращает вновь созданный URL объект, отражающий URL, определяемый параметрами.
  • 👍 7
More from @frontenddevelopernews
  1. Jan 16, 2026🤣🤣🤣
  2. Jan 13, 2026Выпуск №509. Никита Дубко и Вадим Макеев про антивебные API для веба, как LLM и помогает,…
  3. Jan 13, 2026Всем привет! Сегодня прослушала подкаст «Веб-стандарты» #509 и узнала для себя несколько н…
  4. Dec 23, 2025🎄 Advent of JavaScript https://adventjs.dev/ Что это такое: * 24 дня — 24 задачи на JavaS…
  5. Dec 9, 2025💡 Идеальный программист Навыки, которые присущи идеальному разработчику! 😍 Спустя долгое…
  6. Dec 5, 2025Всем привет! Наткнулась в интернете на статью, где автор делится вопросами, которые ему за…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →