new URL解析url

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

你可能感兴趣的:(javascript)