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
对象没有的