BOM介绍

BOM的概念

BOM(Browser Object Model)称为浏览器对象模型,能够获取浏览上所有的内容及相关操作。BOM由一系列相关的对象构成,并且每个对象都提供了一些方法与属性。我们可以通过这些属性和方法去对浏览器进行操作。

window对象

window对象是BOM的顶层(核心)对象。window对象表示浏览器窗口的一个对象, 每个浏览器窗口都有一个window对象与之对应。

window对象的方法

打印方法

console.log(window); //window 对象 Window的构造函数
//常用的弹窗方法及打印方法
window.console.log('hello') //console.log() window可以省略的
console.log('日志') //控制台  log日志 以日志的形式打印
console.error('错误') //以错误的形式打印
console.warn('警告') //以错误的形式打印
console.debug('测试') //以错误的形式打印
console.info('信息提示') //以错误的形式打印

弹窗方法

//弹窗
window.alert('hello') //弹提示窗
var isTrue = confirm('你确认要删除吗') //交互框  true确认 false取消 返回
console.log(isTrue);
var str = prompt('请输入你的手机号') //输入框 他会有个输入框让你输入返回对应的你输入的内容 (string的内容)
console.log(str);

打开关闭方法

//打开 open 关闭 close
// 第一个参数是url地址 第二个参数为title target(打开方式 _blank _self _parent) 第三个参数为设置的参数(窗口的高度 宽度等等)
window.open('http://www.baidu.com','_blank','width=300,height=100,top=0,left=0')
//  height=100 窗⼝⾼度;
//   width=400 窗⼝宽度;
//   top=0 窗⼝距离屏幕上⽅的象素值;
//   left=0 窗⼝距离屏幕左侧的象素值;
//   toolbar=no 是否显⽰⼯具栏,yes为显⽰;
//   menubar,scrollbars 表⽰菜单栏和滚动栏。
//   resizable=no 是否允许改变窗⼝⼤⼩,yes为允许;
//   location=no 是否显⽰地址栏,yes为允许;
//   status=no 是否显⽰状态栏内的信息(通常是⽂件已经打开),yes为允许;
window.close() //关闭当前的窗口 (关闭浏览器只能有一个页面)

改变位置方法

//moveBy 一个是x轴的距离 y轴的距离
window.moveBy(100,100) //X+100 Y+100
//moveTo 一个x轴 一个y轴
window.moveTo(200,200) //X=200 Y=200

location对象(重点)

location是BOM对象之一,它提供了与当前窗口中加载的文档有关的信息, 还提供了一些导航功能。

事实上,location对象是window对象的属性,也是document对象的属性; 所以window.location和document.location等效。

location对象的属性

console.log(location.hash) //哈希 #后面带的值 *
console.log(location.host) //主机 域名 ip地址+端口号
console.log(location.hostname) //主机名 ip地址 (127.0.0.1表示本机地址和localhost是一样的)
console.log(location.protocol) //协议 用于通信 (基于tcp/ip)http(明文传输) https(安全)(加密过)
console.log(location.port) //端口号  1--65525 (1-100的端口电脑占用了)http默认的端口80 https默认端口443
console.log(location.href) //链接的地址  也可以设置
console.log(location.search); //?后面带的值 一般是get请求传输数据的时候 *
console.log(location.origin); //跨域
console.log(location.pathname); //路径名 获取的除了协议和ip地址加端口号后面的东西

location对象的方法

//assign跳转页面
location.assign(‘http://www.baidu.com’);
//replace替换页面
location.replace(“http://www.baidu.com”);
//reload重新加载页面
location.reload();      //最有效的重新加载,有缓存加载

history对象(重点)

history对象是window对象的属性,它保存着用户上网的记录,从窗口被打开的那一刻算起。

history对象的属性

history.length;	//history对象中的记录数
history.state; //状态存储的对象
history.scrollRestoration //滚动栏恢复

history对象的方法

history.back();  //前往浏览器历史条目前一个URL, 类似后退
history.forward();  //前往浏览器历史条目下一个URL, 类似前进
history.go(-1);	//浏览器在history对象中向前或向后(-1代表后退, 1代表向前,0表示刷新当前页面)
console.log(navigator.appName);  //浏览器名称
console.log(navigator.appVersion);  //浏览器版本
console.log(navigator.platform);  //操作系统

路由(拓展内容)

前端路由:根据不同的访问路径来渲染不同的内容(组件)
后端路由:根据对应的接口地址来访问不同的功能
前端路由主要分为三种
1、页面路由(页面跳转 刷新操作)

location.href
location.assign()
location.replace()
history.back()
history.forward() 

2、hash路由(使用hash来实现 后面必须带# 不然不会刷新页面)

window.onhashchange = function(){
    console.log('hash值变了')
}

3、H5路由(history里面state进行监听)

- history.pushState()  加一个历史页面(地址变了 不会刷新)
- history.replaceState() 替换历史页面 (地址变了 不会刷新)

【附加】前端面试题:vue中路由有几种模式?(hash模式和history模式)

posted @ 2022-08-03 19:33  ^-^!  阅读(140)  评论(0编辑  收藏  举报