Location 对象
是浏览器提供的原生对象,提供 URL 相关的信息和操作方法。通过window.location和document.location属性可以拿到这个对象。
一、属性
location.href:整个 UTLlocation.protocol:当前 URL 的协议,包括冒号location.host:主机,包括冒号和端口location.hostname:主机名,不包括端口location.port:端口号location.pathname:URL 的路劲部分,从根路径/开始location.search:查询字符串部分,从问号?开始location.hash:片段字符串部分,从#开始location.username:域名前面的用户名location.password:域名前面的密码location.origin:URL 的协议、主机名和端口
这些属性里面,只有origin属性是只读的,其他属性都可写。
二、方法
Location.assign()方法接受一个 URL 字符串作为参数,使得浏览器立刻跳转到新的 URL。Location.replace()方法接受一个 URL 字符串作为参数,使得浏览器立刻跳转到新的 URL。Location.reload()方法使得浏览器重新加载当前网址,相当于按下浏览器的刷新按钮。Location.toString()方法返回整个 URL 字符串
URL 对象
URL 的编码和解码 js 提供四个 URL 的编码/解码方法
encodeURI()方法用于转码整个 URL。它的参数是一个字符串,代表整个 URL。它会将元字符和语义字符之外的字符,都进行转义。encodeURIComponent()方法用于转码 URL 的组成部分,会转码除了语义字符之外的所有字符,即元字符也会被转码。所以,它不能用于转码整个 URL。它接受一个参数,就是 URL 的片段。decodeURI()方法用于整个 URL 的解码。它是encodeURI()方法的逆运算。它接受一个参数,就是转码后的 URL。decodeURIComponent()用于URL 片段的解码。它是encodeURIComponent()方法的逆运算。它接受一个参数,就是转码后的 URL 片段。
它的实例属性和location对象的属性基本一致,多了一个
URL.searchParams返回一个URLSearchParams实例,该属性是Location对象没有的