URL API,浏览器 Node.js 使用new URL()内置函数解析链接 HTTP协议

浏览器和Node.js都有一个全局类型URL,使用new URL可以新建一个url实例,便于对链接进行解析。

new URL()的第一个参数可以是绝对路径或相对路径,如下是一个绝对路径示例:

let url = new URL("https://example.com:8000/path/file.txt?key=value")

如果是相对路径,则必须将主机名和端口作为第二个参数:

let url = new URL("/path/file.txt?key=value", "https://example.com:8000")

生成了url对象后,就可以得到各个部分了,包括:

  • url.href: 完整链接,例如https://example.com:8000/path/file.txt?key=value。
  • url.host:主机名和端口,例如example.com:8000。
  • url.protocol: 协议,例如https。
  • url.port:端口,例如8000。
  • url.host:主机名,例如example.com。
  • url.pathname:路径,例如/path/file.txt。
  • url.searchParams:查询参数对象。

查询参数对象url.searchParams是一个包含键值对的对象,可以获取、设置、添加、删除键值对。例如:

// 获取键对应的值:
url.searchParams.get("key") 
// 修改键的值:
url.searchParams.set("key","newValue")
// 查看是否存在某个键:
url.searchParams.has("key")
// 添加一个键值对:
url.searchParams.append("ke2","value2")
// 删除一个键值对:
url.searchParams.delete("ke2","value2")

另外,很多时候需要对链接中的中文字符或空格字符进行编解码,这主要用到两个内置函数:

  • encodeURI() : 将非ASCII字符编码成机器可读的字符。
  • decodeURI() : 将ASCII反转成人类可读的字符。

这两个函数的用法是如下;

console.log(encodeURI('你好 世界'))  
// out: %E4%BD%A0%E5%A5%BD%20%E4%B8%96%E7%95%8C
// 20%表示空格
console.log(decodeURI('%E4%BD%A0%E5%A5%BD%20%E4%B8%96%E7%95%8C'))
// out: 你好 世界
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值