BOM 操作与LocalStorage
·
1 BOM(Browser Object Model)
BOM(Browser Object Model,浏览器对象模型)是JavaScript中用于与浏览器窗口进行交互的对象集合。它提供了独立于HTML文档内容的、操作浏览器窗口和导航的方法。
| 对象 | 描述 | 常用属性 / 方法 | 用途示例 |
|---|---|---|---|
| window | BOM 核心对象,代表浏览器窗口 | 属性: innerWidth, innerHeight, outerWidth, outerHeight方法: alert (), confirm (), prompt (), setTimeout (), setInterval () | 获取窗口尺寸、弹窗提示、定时器操作 |
| navigator | 包含浏览器基本信息 | 属性: userAgent, platform, language, cookieEnabled | 检测浏览器类型、操作系统、语言设置 |
| location | 包含当前页面 URL 信息 | 属性: href, protocol, host, pathname, search方法: reload (), assign (), replace () | 页面跳转、获取 URL 参数、刷新页面 |
| history | 包含用户访问历史 | 方法: back (), forward (), go (n)属性: length | 前进后退页面、控制浏览历史 |
| screen | 包含客户端屏幕信息 | 属性: width, height, availWidth, availHeight, colorDepth | 获取屏幕分辨率、可用显示区域 |
| document | 代表当前 HTML 文档 (DOM 核心) | 属性: title, URL, domain方法: getElementById (), querySelector () | 操作页面元素、获取文档信息 |
部分代码和结果演示:
1.window对象(BOM核心,代表浏览器窗口)
<script>
// 常用属性:获取窗口大小
console.log("==== window 对象====");
console.log("窗口内部高度:",window.innerWidth);
console.log("窗口内部宽度:",window.innerHeight);
// 常用方法:弹窗、定时器
window.alert("hello world");
window.confirm("继续吗?");
// 定时器
setTimeout(()=>{
console.log("三秒后执行");
},3000);
// 循环定时器(每2秒执行一次)
const timer = setInterval(()=>{
console.log("每两秒执行一次");
// 10秒后停止定时器
},2000);
setTimeout(()=> clearInterval(timer),10000);
</script>
运行结果演示:
可以看到10秒后计时循环已停止


插入解释:箭头函数:
箭头函数是 ES6 新增的简写函数写法
核心作用:代码更简洁 + 自动绑定 this
本质:一种更简洁的函数声明方式
符号:=>
特点: 不用写 function 关键字
不用写 return(单行时自动返回)
不绑定自己的 this(继承外层作用域的 this)
没有 arguments
单行代码不用大括号
2.navigator 对象(浏览器信息)
<script>
console.log("\n==== navigation 对象 ====");
console.log("浏览器信息",navigator.userAgent)
console.log("操作系统平台",navigator.platform);
console.log("浏览器语言",navigator.language);
console.log("是否启用 Cookie:",navigator.cookieEnabled);
</script>

3.loccation 页面跳转刷新方法
<script>
location.reload();
location.assign("https://www.baidu.com");
// location.replace("https://www.baidu.com");
</script>
reload:原地刷新
assign:记录浏览器历史可后退跳转
replace:直接跳转 不可后退

4.history 页面进退方法
<script>
history.back();
history.forward();
history.go(-1);
history.go(1);
history.go(0);
</script>
1. back() 后退上一页
2. forward() 前进下一页
3. go(n) 跳转指定页数
1.2 本地会话存储
localStorage 是浏览器提供的本地存储 API,用于永久保存数据(除非手动清除),数据会一直存在浏览器中,刷新、关闭页面、重启电脑都不会丢失,是前端最常用的持久化存储方案
| 特性 | localStorage | sessionStorage | cookie |
|---|---|---|---|
| 生命周期 | 永久(需手动删除) | 页面会话期间 | 可设置过期时间 |
| 存储大小 | 约 5-10MB | 约 5-10MB | 约 4KB |
| 服务端读取 | 否 | 否 | 是 |
| 作用域 | 同源窗口共享 | 同一标签页 | 可设置路径 / 域名 |
| 方法 | 说明 | 示例 |
|---|---|---|
setItem(key, value) |
存储数据 | localStorage.setItem('name', '张三') |
getItem(key) |
获取数据 | localStorage.getItem('name') |
removeItem(key) |
删除指定数据 | localStorage.removeItem('name') |
clear() |
清空所有数据 | localStorage.clear() |
key(index) |
根据索引获取键名 | localStorage.key(0) |
length |
获取存储项数量 | localStorage.length |
部分代码示例:
<script>
// 存对象(必须转字符串)
const user ={name:"li",age:18,city:"上海"}
localStorage.setItem("user",JSON.stringify(user));
// 取对象(必须解析回来)
const userinfo = JSON.parse(localStorage.getItem("user"))
console.log(userinfo.age);
console.log(userinfo.city);
</script>
注:因为 localStorage 只能存字符串,不能直接存对象,所以必须用JSON.stringify转换。
需要取用的时候再用JSON.parse取回来
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)