一、BOM
- 浏览器对象模型,定义了一套操作浏览器窗口的API
javaScript的组成
- ECMAScript:
- 规定了js基础语法核心知识。
- 比如:变量、分支语句、循环语句、对象等等
- Web APIs :
- DOM 文档对象模型, 定义了一套操作HTML文档的API
- BOM 浏览器对象模型,定义了一套操作浏览器窗口的API
window对象
- BOM (Browser Object Model ) 是浏览器对象模型
- window对象是一个全局对象,也可以说是JavaScript中的顶级对象
- 像document、alert()、console.log()这些都是window的属性,基本BOM的属性和方法都是window的
- 所有通过var定义在全局作用域中的变量、函数都会变成window对象的属性和方法
- window对象下的属性和方法调用的时候可以省略window
1.3 navigator对象
- navigator是对象,该对象下记录了浏览器自身的相关信息
- 常用属性和方法:
- 通过 userAgent 检测浏览器的版本及平台
1.4 histroy对象
- history (历史)是对象,主要管理历史记录, 该对象与浏览器地址栏的操作相对应,如前进、后退等
- 使用场景
1.5 本地存储
本地存储- localStorage
- 作用: 数据可以长期保留在本地浏览器中,刷新页面和关闭页面,数据也不会丢失
- 特性: 以键值对的形式存储,并且存储的是字符串, 省略了window
- 数据共享: localStorage数据可以多窗口共享(同一个浏览器,同一个域名下)
- 语法:
- 清空数据
localStorage.clear()
会话存储- sessionStorage
- 特性:
- 用法跟localStorage 基本相同
- 区别是:当页面浏览器被关闭时,存储在 sessionStorage 的数据会被清除
- 数据共享: 在同一个窗口(页面)下数据可以共享
- 语法:
- 清空数据
sessionStorage.clear()
localStorage 和 sessionStorage的区别?
-
- 生命周期
-
- 数据共享
浏览器查看本地数据
二、 localStorage --拓展
问题: 存入复杂类型
- 本地只能存储字符串,无法存储复杂数据类型.
-
解决方案:
JSON.stringify()将对象转换为JSON格式的字符串JSON.parse()将JSON格式的字符串转为对象形式- 需要将复杂数据类型转换成 JSON字符串,再存储到本地
- 语法:
JSON.stringify(复杂数据类型)
问题: 取出无法直接使用
- 因为本地存储里面取出来的是字符串,不是对象,无法直接使用
解决方案:
- 把取出来的字符串转换为对象
- 语法:
JSON.parse(JSON字符串)