URL()
The URL() constructor returns a newly created
URL object representing the URL defined by the parameters.
If the given base URL or the resulting URL are not valid URLs, the JavaScript
TypeError exception is thrown.
Note: This feature is available in Web Workers
Syntax
new URL(url)
new URL(url, base)
Parameters
url-
A
USVStringor any other object with a stringifier — including, for example, an<a>or<area>element — that represents an absolute or relative URL. Ifurlis a relative URL,baseis required, and will be used as the base URL. Ifurlis an absolute URL, a givenbasewill be ignored. baseOptional-
A
USVStringrepresenting the base URL to use in cases whereurlis a relative URL. If not specified, it defaults toundefined.
Exceptions
| Exception | Explanation |
|---|---|
TypeError |
url (in the case of absolute URLs) or base + url (in the case of relative URLs) is not a valid URL. |
Examples
// Base urls
let m = 'https://developer.mozilla.org';
let a = new URL("/", m); // => 'https://developer.mozilla.org/'
let b = new URL(m); // => 'https://developer.mozilla.org/'
new URL('en-US/docs', b); // => 'https://developer.mozilla.org/en-US/docs'
let d = new URL('/en-US/docs', b); // => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', d); // => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', a); // => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', "https://developer.mozilla.org/fr-FR/toto");
// => 'https://developer.mozilla.org/en-US/docs'
new URL('/en-US/docs', ''); // Raises a TypeError exception as '' is not a valid URL
new URL('/en-US/docs'); // Raises a TypeError exception as '/en-US/docs' is not a valid URL
new URL('http://www.example.com', ); // => 'http://www.example.com/'
new URL('http://www.example.com', b); // => 'http://www.example.com/'
new URL("", "https://example.com/?query=1") // => 'https://example.com/?query=1' (Edge before 79 removes query arguments)
new URL("/a", "https://example.com/?query=1") // => 'https://example.com/a' (see relative URLs)
new URL("//foo.com", "https://example.com") // => 'https://foo.com' (see relative URLs)
Specifications
| Specification |
|---|
| URL Standard # constructors |
Browser compatibility
BCD tables only load in the browser
See also
- Polyfill of
URLincore-js - The interface it belongs to:
URL.