浏览器中的JavaScript核心BOM(浏览器对象模型)重点掌握对象之Location对象的属性与方法

本文深入解析浏览器内置对象Location的属性与方法,包括href、protocol、host等属性,以及assign、replace、reload等方法的使用,帮助理解URL操作及页面跳转机制。
部署运行你感兴趣的模型镜像

引言

在学过JavaScript之后,我们都知道对象分为内置对象 、宿主对象 、自定义对象,我们经常用到的浏览器中的内置对象就是宿主对象的一种,浏览器的内置对象有很多,本文就来详细讲解一下Location对象的属性与方法吧。

  • 公众号:前端印象
  • 不定时有送书活动,记得关注~
  • 关注后回复对应文字领取:【面试题】、【前端必看电子书】、【数据结构与算法完整代码】、【前端技术交流群】

正文

因为把浏览器的所有内置对象逐个详细讲解,文章篇幅会很长,所以我把每个对象的讲解都放在不同的文章中,大家如果还想了解其他的浏览器内置对象,可以划到文章最后一部分,那里有跳转链接。

一、Location对象的作用

Location对象包含着关于当前网页的URL信息,并且可以对URL进行拆分 、读写等各种操作。

二、Location对象的引用

我们可以通过浏览器的全局对象window来引用Location,像这样window.location ,也可以直接通过 location 来引用Locagtion对象。

window.location === location      //返回 true

我们在浏览器的控制台中引用一下Location对象,看看会返回什么
在这里插入图片描述
可以看到,返回的Location对象中有许多的属性和方法,接下来我们就对这些属性和方法进行讲解。

三、Location对象的属性

我们来看一下Location对象的属性,下面用一张表格来呈现:

属性描述
href设置或返回完整的URL
protocol设置或返回URL的协议部分
host设置或返回主机名和URL的端口号
hostname设置或返回URL的主机名
pathname设置或返回URL的路径
port设置或返回URL的端口号
search设置或返回URL的参数部分,即?后面的参数部分
hash设置或返回URL的锚点部分,即#后面的锚点部分

接下来,看一下URL的格式是什么样的:协议://主机名:端口/路径?查询参数#锚

再来看看一个真实的URL
https://www.baidu.com/index.html?query=java&i=0#_1

我们在该URL页面调用Location对象的各个属性的返回值如下:

location.href   //返回https://www.baidu.com:5000/index.html?query=java&i=0#_1

location.protocol  //返回  https:

location.host      //返回  www.baidu.com:5000    

location.hostname  //返回  www.baidu.com

location.pathname  //返回  /index.html

location.port      //返回   5000

location.search    //返回  ?query=java&i=0

location.hash      //返回  #_1

这些属性是可读/写的,所以我们还可以通过给这些属性赋值,来改变当前页面的URL值,完成一些页面的跳转等操作,例如

//给当前页面的location对象的href属性赋值一个新的URL地址
location.href = "https://blog.youkuaiyun.com/L_PPP"

我们来看一下给href属性赋值后,会发生什么
在这里插入图片描述
可以看到,给href属性赋值后,当前页面的URL发生了改变,并发生了相应的页面跳转。同样的其他的属性也是可以进行赋值的,大家可以自行测试一下。

四、Location对象的方法

Location对象一共有3种方法,他们分别是:

方法描述
assign()加载一个新的页面
replace()用新的页面替换当前页面
reload()重新加载当前页面

我们来逐个讲解这三种看似作用相同,却有很大区别的方法吧。

  • assign()

该方法需要传入一个URL作为参数,调用该方法后,页面会跳转到该URL所在的页面,并且我们可以通过浏览器的回退功能返回上一个页面。

//调用Location对象的assign()方法
location.assign("https://blog.youkuaiyun.com/L_PPP")

我们来看一下动图展示
在这里插入图片描述

  • replace()

该方法同assign()方法一样,也需要传入一个URL作为参数,调用该方法后,页面会跳转到该URL所在的页面,但是不同的是,该方法调用进行跳转后无法通过浏览器的回退功能返回上一个页面了。

//调用Location对象的replace()方法
location.replace("https://blog.youkuaiyun.com/L_PPP")

我们来看一下动图展示
在这里插入图片描述

  • reload()

该方法不需要传入任何的参数,可直接调用。调用该方法,会将当前页面重新加载,就相当于我们按了F5刷新页面。

//调用了location对象的reload()方法
location.reload()

我们来看一下动图展示
在这里插入图片描述

结束语

好了,Location对象的讲解就到这里了,如果各位对浏览器的其他内置对象感兴趣的话,可以去看我这篇文章——浏览器中的JavaScript核心讲解之BOM(浏览器对象模型),翻到最底部,可以看到各种其它浏览器内置对象的详解。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值