Mastering URL API in JavaScript


As web developers, we frequently deal with URLs. Whether we're parsing query strings, manipulating paths, or simply constructing links, URLs are a fundamental part of web development. Thankfully, JavaScript provides us with a robust API to work with URLs: the URL API.
In this blog post, we'll dive into the URL API, exploring its features and capabilities with real-world examples. Whether you're building a complex web application or just need to manipulate a few query parameters, the URL API will make your life easier.
Understanding the URL API
The URL API provides a standardized way to work with URLs in JavaScript. It allows you to easily parse and manipulate the components of a URL, such as the protocol, hostname, path, and query parameters.
Let's start by creating a URL object using the URL constructor:
const myURL = new URL('https://www.example.com:8080/path/page?name=JohnDoe#section1');
With the myURL object, you can now access different parts of the URL:
href: The full URL
protocol: The protocol (e.g., https:)
hostname: The domain name (e.g., www.example.com)
port: The port number (e.g., 8080)
pathname: The path (e.g., /path/page)
search: The query string (e.g., ?name=JohnDoe)
hash: The fragment identifier (e.g., #section1)
console.log(myURL.href); // https://www.example.com:8080/path/page?name=JohnDoe#section1
console.log(myURL.protocol); // https://
console.log(myURL.hostname); // www.example.com
console.log(myURL.port); // 8080
console.log(myURL.pathname); // /path/page
console.log(myURL.search); // ?name=JohnDoe
console.log(myURL.hash); // #section1
1. Parsing and Extracting URL Components One of the most common tasks in web development is extracting information from a URL. Whether you need to access the domain, path, query parameters, or hash, the URL API makes this process straightforward.
const url = new URL('https://example.com/products?category=shoes&color=blue');
const category = url.searchParams.get('category'); // "shoes"
const color = url.searchParams.get('color'); // "blue"
console.log(`Category: ${category}, Color: ${color}`);
2. Constructing Dynamic URLs In modern JavaScript applications, dynamically generating URLs is a common requirement. Whether you're creating API endpoints, constructing links, or redirecting users, the URL API allows you to build URLs on the fly with ease.
Example: Creating an API Endpoint
const baseUrl = 'https://api.example.com';
const userId = '123';
const endpoint = `/users/${userId}/orders`;
const apiUrl = new URL(endpoint, baseUrl);
console.log(apiUrl.toString()); // "https://api.example.com/users/123/orders"
3. Handling URL Redirections URL redirection is a critical aspect of many web applications, especially in authentication flows, marketing campaigns, and multi-step forms. The URL API simplifies the process of redirecting users based on URL parameters or paths.
Example: Redirecting Based on a Query Parameter
const currentUrl = new URL(window.location.href);
const redirectTo = currentUrl.searchParams.get("redirect");
if (redirectTo) {
window.location.href = redirectTo;
} else {
console.log("No redirection target specified.");
}
4. Manipulating Query Parameters Query parameters are a powerful way to pass data between different parts of an application or to an external service. The URL API's URLSearchParams interface allows you to easily add, update, and remove query parameters.
Example: Updating a Query Parameter
const url = new URL('https://example.com/search?query=javascript');
url.searchParams.set('query', 'URL API');
url.searchParams.set('page', '2');
console.log(url.toString()); // "https://example.com/search?query=URL%20API&page=2"
Follow me to get more JavaScript tips and tricks that will help you master the language and improve your web development skills.
Subscribe to my newsletter
Read articles from Rigal Patel directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Rigal Patel
Rigal Patel
Hi, I am Rigal Pate, Founder of Ruminate Software and a Full-Stack Developer. With over 10 years of experience, I specialize in JavaScript, React, Node.js, and AWS. I'm always exploring the latest in AI, ML, and other cutting-edge technologies. I'm passionate about continuous learning, pushing boundaries, and collaborating on innovative projects to solve complex problems.