先实例代码:
<a href="index1.html">点击跳转</a> <a target="_blank" href="index1.html">新窗口打开</a> <script> //基本类型 let app = "Hello World!"; sessionStorage.setItem("getApp",app); //引用类型 let obj = { name:"张三", age:18, like:"翠花", hobby:["唱","跳","rap"] } let JSON_obj = JSON.stringify(obj); localStorage.setItem("obj",JSON_obj); </script>
index1.html
<script> let ap = sessionStorage.getItem("getApp"); //alert("ap值为:"+ap); console.log(ap); document.writeln(ap); let JSON_obj = localStorage.getItem("obj"); let obj = JSON.parse(JSON_obj); console.log(obj); </script>
点击跳转,可以看到控制台使用sessionStorage与localStorage都被获取到了.
新窗口打开,控制台只获取到了localStorage存储的数据.
基本类型与引用类型存储和取出不一样,引用类型需序列化存储,再反序列化取出.
否则只会取出[Object object]
sessionStorage与之相关的是标签页,使用了新窗口打开将会失效.
当然浏览器关闭也会失效.
而localStorage并不会,它唯一的一种失效的方式就是手动去删除.(同一浏览器下)
因为localStorage是存储在浏览器本地的,更换浏览器会读取不到(如果之前未存入过)
如下:
<script> let ap = sessionStorage.getItem("getApp"); //alert("ap值为:"+ap); console.log(ap); document.writeln(ap); localStorage.removeItem("obj"); let JSON_obj = localStorage.getItem("obj"); let obj = JSON.parse(JSON_obj); console.log(obj); </script>
控制台输出: