JavaScript 复习之 Location对象,URL对象

552 阅读2分钟

Location 对象

是浏览器提供的原生对象,提供 URL 相关的信息和操作方法。通过window.locationdocument.location属性可以拿到这个对象。

一、属性

  • location.href:整个 UTL
  • location.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 的编码/解码方法

  1. encodeURI()方法用于转码整个 URL。它的参数是一个字符串,代表整个 URL。它会将元字符和语义字符之外的字符,都进行转义。
  2. encodeURIComponent()方法用于转码 URL 的组成部分,会转码除了语义字符之外的所有字符,即元字符也会被转码。所以,它不能用于转码整个 URL。它接受一个参数,就是 URL 的片段。
  3. decodeURI()方法用于整个 URL 的解码。它是encodeURI()方法的逆运算。它接受一个参数,就是转码后的 URL。
  4. decodeURIComponent()用于URL 片段的解码。它是encodeURIComponent()方法的逆运算。它接受一个参数,就是转码后的 URL 片段。

它的实例属性和location对象的属性基本一致,多了一个

  • URL.searchParams返回一个URLSearchParams实例,该属性是Location对象没有的