let a = https://segmentfault.com/write#page1?freshman=1&name='laowang'
let b = new URL(a)
一、属性
hash
获取及设置 URL 的片段部分
b.hash
// #page1?freshman=1&name='laowang'
b.hash = 'page2'
b.href
// https://segmentfault.com/write#page2
host
获取及设置 URL 的主机部分(含端口号)
b.host
// segmentfault.com
b.host = 'segmentfault.com:80'
b.href
// https://segmentfault.com:80/write#page2
hostname
获取及设置 URL 的主机名部分(不含端口号)
b.hostname
// segmentfault.com
// 不能设置端口号
href
获取及设置序列化的 URL
b.href
// https://segmentfault.com:80/write#page2
origin
获取只读的序列化的 URL 的 origin
b.origin
// https://segmentfault.com
pathname
获取及设置 URL 的路径部分
b.pathname
// /write
port
获取及设置 URL 的端口部分
protocol
获取及设置 URL 的协议部分
b.protocol
// https
search
获取及设置 URL 的序列化查询部分
let a = https://segmentfault.com/write?freshman=1&name='laowang'
let b = new URL(a)
b.search
// ?freshman=1&name=laowang
searchParams
URL 查询参数的 URLSearchParams 对象。
username
获取及设置 URL 的用户名部分
const myURL = new URL('https://abc:[email protected]')
myURL.username
// abc
myURL.username = '123'
myURL.href
// https://123:[email protected]/
password
获取及设置 URL 的密码部分
myURL.password
// xyz
myURL.password = '123';
myURL.href
// https://abc:[email protected]
二、方法
toString()
在 URL
对象上调用 toString()
方法将返回序列化的 URL
三、searchParams属性
let a = https://segmentfault.com/write'
let b = new URL(a)
let c = b.searchParams
增
append()
给url增加一个参数
c.append('name', 'laowang')
b.href
// https://segmentfault.com/write?name=laowang
删
delete()
删除url的某个参数
c.delete('age')
b.href
// https://segmentfault.com/write?name=laoli
改
set()
给url增加一个参数,当增加的参数已存在时,则替换第一个,其他的删除
c.set('name', 'laoli')
c.set('age', '20')
b.href
// https://segmentfault.com/write?name=laoli&age=20
查
has()
判断url中是否含有某个参数
c.has('name')
// true
c.has('age')
// false
获取
get()
获取url中的某个参数
c.get('name')
// 'laoli'
c.get('age')
// null
getAll()
获取url中的某个参数的所有值
c.getAll('name')
// ['laoli']
c.append('name', 'laowang')
b.href
// https://segmentfault.com/write?name=laoli&age=20&name=laowang
c.getAll('name')
// ['laoli', 'laowang']
entries()
返回一个 iterator
对象,可以遍历所有键/值对
Iterator是一种接口机制,为各种不同的数据结构提供统一的访问机制
ES6创造了一种新的遍历命令for...of循环,Iterator接口主要供for...of消费
for(var obj of c.entries()) {
console.log(obj);
}
// ["name", "laoli"]
// ["age", "20"]
// ["name", "laowang"]
keys()
返回 iterator
此对象包含了键/值对的所有键名。
for(var key of c.keys()) {
console.log(key);
}
// name age name
values()
返回 iterator
此对象包含了键/值对的所有值
for(var value of c.values()) {
console.log(value);
}
// laoli 20 laowang
排序
sort()
按键名排序。
c.sort()
// age=20&name=laoli&name=laowang