面试——`cookie`,`localStorage` 和 `sessionStorage`

cookielocalStoragesessionStorage的区别?

cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密),会随着在http请求时被发送到服务端,在浏览器和服务器间来回传递,只能document.cookie = '...' 来修改。

localStoragesessionStorage不会随着http请求被发送出去,仅在本地保存。

存储大小:

  • cookie数据大小不能超过4k;
  • localStoragesessionStorage虽然也有存储大小的限制,可以达到5M或更大;

有期时间:

  • cookie 在设置的过期时间之前一直有效,即使窗口或浏览器关闭;

  • localStorage 存储持久数据,没有时间限制的数据存储,浏览器关闭后数据不丢失除非主动删除数据;

  • sessionStorage针对一个 session 的数据存储, 数据在当前浏览器窗口关闭后自动删除;

localStoragesessionStorage使用的API相同,常用的有如下几个(以localStorage为例):

  • 保存数据:localStorage.setItem(key,value);

  • 读取数据:localStorage.getItem(key);

  • 删除单个数据:localStorage.removeItem(key);

  • 删除所有数据:localStorage.clear();

  • 得到某个索引的key:localStorage.key(index);

面试——`cookie`,`localStorage` 和 `sessionStorage`