localStorage 和 sessionStorage 的定义
Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加、删除、修改、查询操作。
- localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
- sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
localStorage 和 sessionStorage 的相同点
- 都是存储在客户端
- 增删改查的方法都一样,getItem、setItem、removeItem、clear
- localStorage 和 sessionStorage 都是 Web 存储 API 提供的两个存储对象来对网页的数据进行添加、删除、修改、查询操作。
localStorage 和 sessionStorage 的不同点
- localStorage 在浏览器中存储 key/value 对。没有过期时间。
- sessionStorage 在关闭窗口或标签页之后将会删除这些数据。
面试经验
面试的时候总是有人问,什么是localStorage ,什么是 sessionStorage,有什么不一样吗
- 问:他们的过期时间分别是多少?
- 答:其实 localStorage 并没有过期时间,只能通过手动清除才会消失,
sessionStorage 在关闭窗口或标签页之后将会删除这些数据 - 问:sessionStorage 关闭窗口或标签页会删除,下次打开这个标签页或窗口还有吗?
- 答:没有了,因为删除就是删除了,下次打开该窗口或者标签页,上次存储的内容已经消失了
- 问:那 localStorage 关闭标签页或者浏览器会消失吗?
- 答:不会消失
- 问:那下次打开浏览器 localStorage 的数据就有了是吗
- 答:其实 localStorage 并不是存储在浏览器本地,而是存储在 URL 标签页的本地,下次打开同个网址,存储的localStorage 还是存在的,但是打开通个浏览器,不同网址,是不存在的(个人理解)
本文是个人的理解,如有不妥,请赐教