终于出狱了,今天重新恢复博客的更新,大致谈谈我复习面试上面的查漏补缺的内容。
首先讲讲什么是BOM?BOM简单来说就是浏览器对象,只有js在浏览器环境运行时才会被赋予的对象
- location对象
该对象内所有的属性都与URL有关,常常用于提取页面参数
现在以我的B站直播间为例https://live.bilibili.com/9291099?spm_id_from=333.999.0.0
location.href
:返回当前地址的URL(字符串形式)
console.log(location.href)
// https://live.bilibili.com/9291099?spm_id_from=333.999.0.0
location.search
:返回当前URL的参数
console.log(location.search)
//?spm_id_from=333.999.0.0
此时我们可以用字符串方法把参数转化为对象
location.host
:返回当前URL的域名
console.log(location.host)
// live.bilibili.com
// 如果URL带端口号的话也会输出
location.hostname
:返回当前URL的主域名
console.log(location.host)
// live.bilibili.com
// 不带端口
location.pathname
: 返回当前地址的路由
console.log(location.pathname)
// /9291099
location.port
返回端口
// 没有端口就返回空值
location.protocol()
:返回URL中的协议部分(应用层协议)
console.log(location.protocol)
// https:
location.assign
: 设置当前URL地址,并记录至history(可快退返回前一个网页)
location.assign(URL) // URL: string
location.replace(URL)
:设置新的URL地址,会将原先的网页从history中替换出去(无法快退返回前一个网页)
location.repload()
:重新进入页面
- history对象
记录您之前浏览过的网页
history.go(num)
:指定前进或后退一定的页数
history.back()
: 后退一页
history.forward()
: 前进一页
- navigator对象
这个对象记录的是浏览器的基本信息,很少用,就不多赘述了
总结
其中,用 比较多的就是location,history对象,不仅面试H会考,在实际项目中也经常用到,希望能记住里面的主要属性。