URL

JS中的URL对象

构造函数: new URL()

用于创建一个URL对象, 接收两个参数, url和base

  • url: 必选参数, 一个绝对或相对路径
  • base: 可选参数, 作为URL对象的基础路径(放在该URL前面)
    • String: 如果base是一个字符串, 则会把base和url做一个URL的拼接
    • Object: 如果是一个URL对象, 则会把base代表的url提取出来, 然后拼接成一个新的URL对象

如果传入的参数无法组成一个有效的URL, 那个么就会报错
因为url不区分大小写, 所以使用URL创建的url全部会转换为小写

示例代码

var url = new URL('https://www.google.com'); // => https://www.google.com
var url_1 = new URL('?q=url', 'https://www.google.com'); // => https://www.google.com?q=url
var url_2 = new URL('?q=url', url); // => https://www.google.com?q=url

属性

协议: protocol

常见的协议就是http(https), 或file, 不同的URL可能有不同的协议
URL对象的protocol属性返回代表该url的协议的字符串

(new URL('http://www.google.com')).protocol; // => http
(new URL('https://www.google.com')).protocol; // => https
(new URL('c:\\system\\user')).protocol; // => file

主机: host和hostName

host和hostName可以用于获取一个URL的主机, 两者的区别在于, hostName仅仅返回主机名, 而host可以获取主机名加端口号

(new URL('http://www.google.com')).host; // => www.google.com
(new URL('http://www.google.com')).hostName; // => www.google.com
(new URL('http://localhost:8080')).hostName; // => localhost:8080
(new URL('http://localhost:8080')).hostName; // => localhost

端口: prot

前面的host属性可以获取到主机名和端口号, 那个如果只是希望获取端口, 就可以使用prot属性了

(new URL('http://localhost:8080')).prot; // => 8080

目标地址: href

href会返回一个URL对象实际执行的目标地址的字符串

(new URL('http://www.google.com')).href; // => http://www.google.com

路径: path

url的路劲就是紧跟host之后类似于/a/b这样的字符串

(new URL('http://localhost:8080/person/man')).path; // => /person/man

参数:search

参数就是紧跟path之后, 由?开头的字符串, 多个参数使用&分隔开
参数使用的是key=value这样的键值对, key就是参数名, value就是参数的值了

(new URL('http://localhost:8080/person/man?q=url&land=cn')).path; // => ?q=url&land=cn

哈希值: hash

哈希值就是在search之后, 由#开头的字符串, 知道结尾

(new URL('http://localhost:8080/person/man?q=url&land=cn#url')).hash; // => #url

origin

origin属性包括了协议, 主机(如果有端口号包括端口号)

所有属性可读可写, 一个有效的url必须包含协议和主机

函数

createObjectURL

用于创建可以访问一个File或Blob等对象资源的URL字符串

var fileUrl = URL.createObjectURL(file);
var blobUrl = URL.createObjectURL(blob);

revokeObjectURL

用于使一个createObjectURL创建的url失效

var url = URL.reateObjectURL(file); // url有效
URL.revokeObjectURL(url); // url失效
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值