📅  最后修改于: 2023-12-03 15:16:59.745000             🧑  作者: Mango
在JavaScript中,我们可以通过使用URL对象来处理URL及其组成部分。
我们可以使用new URL()
构造函数来创建URL对象。例如:
const url = new URL('https://www.example.com/path?query=string#fragment');
console.log(url);
输出结果为:
URL {
href: 'https://www.example.com/path?query=string#fragment',
origin: 'https://www.example.com',
protocol: 'https:',
username: '',
password: '',
host: 'www.example.com',
hostname: 'www.example.com',
port: '',
pathname: '/path',
search: '?query=string',
searchParams: URLSearchParams { 'query' => 'string' },
hash: '#fragment'
}
URL对象的属性提供了URL组成部分的访问。例如:
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/path"
console.log(url.searchParams.get("query")); // "string"
我们可以使用URL对象的属性来修改URL。例如:
url.protocol = "http:";
url.hostname = "example.org";
url.pathname = "/newpath";
url.searchParams.set("newparam", "newvalue");
console.log(url.href); // "http://example.org/newpath?query=string&newparam=newvalue#fragment"
URLSearchParams对象提供了操作URL查询字符串的方法。我们可以使用new URLSearchParams()
构造函数来创建URLSearchParams对象。例如:
const params = new URLSearchParams("?query=string&newparam=newvalue");
console.log(params.get("query")); // "string"
console.log(params.get("newparam")); // "newvalue"
我们也可以使用URL对象的searchParams
属性访问URL的查询字符串部分。例如:
console.log(url.searchParams.get("query")); // "string"
console.log(url.searchParams.get("newparam")); // "newvalue"
我们可以使用URLSearchParams对象的方法来修改URL的查询字符串。例如:
params.set("newparam", "updatedvalue");
params.append("anotherparam", "anothervalue");
console.log(params.toString()); // "query=string&newparam=updatedvalue&anotherparam=anothervalue"