Skip to content
On this page

BOM

window

js
/*
	js的运行环境有两个
     1.浏览器  把js代码运行在浏览器上 全局对象window
     2.node  node也是一个js的运行环境
     在node中全局对象是global, node里面有window吗?
     统一的全局对象 globalThis
*/
// console.log(window);
// console.log(globalThis);
// console.log(window === globalThis);   //true
js
// 打开窗口
win = window.open('https://www.baidu.com/')
// 关闭窗口
win.close()
// outerHeight 浏览器的高度, 包括菜单栏
console.log(window.outerHeight);
// innerHeight 窗口内容区域的高度,不包含菜单栏

location

window上, 当前连接到的url信息

js
// url的组成
// https://www.baidu.com/newspage?name="wang"
// https://  协议
// www.baidu.com   host 域名 主机地址 通过这个可以找到ip地址
// :443 端口号 是https默认的端口号 http默认的是80
// /newspage  路径名 path
// ?name="wang" 查询字符串
// #abc hash值  锚点
  • location 属性和方法
js
// location 常见的属性 
	// .protocol //http:
	// .host //主机地址
	// .hostname //主机地址,不包含端口号
	// .port //端口号
	// .href //url地址

// href 改变url地址,有记录
location.href =  './03-out页面.html'

// assign 打开一个新页面,有记录
location.assign('https://www.baidu.com/')

// replace 替换为新的页面,无记录
location.replace('https://www.baidu.com/')

// reload 重新加载页面,强制刷新
location.reload(true)

查询字符串

js
var queryString = '?name="wang"&age=1'
var searchParams = new URLSearchParams(queryString)
// 获取参数值
console.log(searchParams.get('name'));
// 追加参数值
searchParams.append('address', 'zz')
console.log(searchParams.get('address'));
// 修改参数值
searchParams.set('name', 'zs')
console.log(searchParams.get('name'));

history

js
// 历史会话记录
console.log(history);
// 根据历史,往前走一个
history.go(1)
// 根据历史,往后走一个
history.go(-1)
// 往后走一个,前进
history.forward()
// 往前走一个,回退
history.back()

screen

js
// screen 记录的是屏幕的信息
console.log(screen.width);
console.log(screen.height);
console.log(screen);

xxxStorage

获取和设置的,均是JSON格式的数据。

  • 普通数据: 直接获取和存储。
  • 引用数据:
    • 设置:JSON.stringfy(xx) 序列化。
    • 获取:JSON.parse(xxx) 反序列化。
js
// sessionStorage 会话信息存储
// 不能跨窗口访问
// .setItem(键名,键值) 设置/添加数据
sessionStorage.setItem('name', a)
// .getItem(键名) 获取数据
sessionStorage.getItem('name')
// .removeItem(键名) 移出数据
sessionStorage.removeItem('name')
// .clear() 清空数据
sessionStorage.clear()

// localStorage 本地信息存储
// 只能手动清空
localStorage.setItem('name',a);
// xxxxx 其他方法与上面一致

鼠标的位置

js
// e.offsetX和e.offsetY 
// 事件对象上的属性
// 事件触发时,盒子内鼠标的位置

// e.clientX 和e.clientY
// 事件对象上的属性
// 事件触发时,body内鼠标的位置

一个陪你成长的前端博客 - XDocs