文章目录
前言
Web存储对象有localStorage和sessionStorage两种,它允许我们以键值对的形式在浏览器上保存数据。
相同点
属性 |
说明 |
setItem(key, value) |
存储键值对 |
getItem(key) |
获取键的值 |
removeItem(key) |
删除指定键 |
clear |
删除所有数据 |
key(index) |
获取对应索引的键名 |
length |
存储键值对数据 |
1 LocalStorage
1.1 LocalStorage介绍
特点:
- localStorage 用于长久保存网站数据,无过期时间,除非删除。
- 在同源的所有标签页与窗口之间数据共享。
- 存储字段类型为字符串,使用需自己转换为所需类型
1.2 检测浏览器是否支持
if (window.localStorage) {
alert('该浏览器支持 localStorage');
} else {
alert('该浏览器不支持localStorage!!!');
}
1. 3 LocalStorage读写
1.3.1 写/读/删 操作
写:有三种方式如下代码所示
删除键:localStorage.removeItem("你的key值")
全部清空:localStorage.clear()
localStorage.nick = "有勇气的牛排";
localStorage["uid"] = 1;
localStorage.setItem("lv", "9");
console.log(localStorage.nick)
console.log(localStorage["uid"])
console.log(localStorage.getItem("lv"))
localStorage.removeItem("nick")
localStorage.removeItem("uid")
localStorage.removeItem("lv")
console.log("---")
console.log(localStorage.nick)
console.log(localStorage["uid"])
console.log(localStorage.getItem("lv"))
console.log("---")
1.3.2 查看所有键值对
方法:key()
localStorage.nick = "有勇气的牛排";
localStorage["uid"] = 1;
localStorage.setItem("lv", "9");
for (let i = 0; i < localStorage.length; i++) {
let key = localStorage.key(i);
let value = localStorage.getItem(key)
console.log(key + " : " + value)
}

1.3.3 存储json对象
localStorage.userinfo = JSON.stringify({uid: 1, nick: "有勇气的牛排"})
let userinfo = JSON.parse(localStorage.userinfo)
console.log(userinfo.uid)
console.log(userinfo.nick)
2 sessionStorage
2.1 sessionStorage介绍
使用方法同localStorage
,但是有如下不同:
- 数据仅存在于当前浏览器标签页。
- 同源且同一标签页下的iframe之间数据共享。
- 具有相同页面的另一个标签页将会有不同的存储。
- 浏览器关闭后,数据不保留。
2.2 使用方法
请参考localStorage
<p><h3>文章目录</h3><ul><ul><li><a href="#_2">前言</a></li><li><a href="#1_LocalStorage_16">1 LocalStorage</a></li><ul><li><a href="#11_LocalStorage_17">1.1 LocalStorage介绍</a></li><li><a href="#12__24">1.2 检测浏览器是否支持</a></li><li><a href="#1_3_LocalStorage_34">1. 3 LocalStorage读写</a></li><ul><li><a href="#131___35">1.3.1 写/读/删 操作</a></li><li><a href="#132__70">1.3.2 查看所有键值对</a></li><li><a href="#133_json_89">1.3.3 存储json对象</a></li></ul></ul><li><a href="#2_sessionStorage_104">2 sessionStorage</a></li><ul><li><a href="#21_sessionStorage_105">2.1 sessionStorage介绍</a></li><li><a href="#22__113">2.2 使用方法</a></li></ul></ul></ul></p>
<h2><a id="_2"></a>前言</h2>
<p>Web存储对象有localStorage和sessionStorage两种,它允许我们以键值对的形式在浏览器上保存数据。</p>
<p>相同点</p>
<table>
<thead>
<tr>
<th>属性</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>setItem(key, value)</td>
<td>存储键值对</td>
</tr>
<tr>
<td>getItem(key)</td>
<td>获取键的值</td>
</tr>
<tr>
<td>removeItem(key)</td>
<td>删除指定键</td>
</tr>
<tr>
<td>clear</td>
<td>删除所有数据</td>
</tr>
<tr>
<td>key(index)</td>
<td>获取对应索引的键名</td>
</tr>
<tr>
<td>length</td>
<td>存储键值对数据</td>
</tr>
</tbody>
</table>
<h2><a id="1_LocalStorage_16"></a>1 LocalStorage</h2>
<h3><a id="11_LocalStorage_17"></a>1.1 LocalStorage介绍</h3>
<p>特点:</p>
<ul>
<li>localStorage 用于长久保存网站数据,无过期时间,除非删除。</li>
<li>在同源的所有标签页与窗口之间数据共享。</li>
<li>存储字段类型为字符串,使用需自己转换为所需类型</li>
</ul>
<h3><a id="12__24"></a>1.2 检测浏览器是否支持</h3>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-keyword">if</span> (<span class="hljs-variable language_">window</span>.<span class="hljs-property">localStorage</span>) {
<span class="hljs-title function_">alert</span>(<span class="hljs-string">'该浏览器支持 localStorage'</span>);
} <span class="hljs-keyword">else</span> {
<span class="hljs-title function_">alert</span>(<span class="hljs-string">'该浏览器不支持localStorage!!!'</span>);
}
</code></div></pre>
<h3><a id="1_3_LocalStorage_34"></a>1. 3 LocalStorage读写</h3>
<h4><a id="131___35"></a>1.3.1 写/读/删 操作</h4>
<p>写:有三种方式如下代码所示<br />
删除键:<code>localStorage.removeItem("你的key值")</code><br />
全部清空:<code>localStorage.clear()</code></p>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-comment">// 三种写方法</span>
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-property">nick</span> = <span class="hljs-string">"有勇气的牛排"</span>;
<span class="hljs-variable language_">localStorage</span>[<span class="hljs-string">"uid"</span>] = <span class="hljs-number">1</span>;
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">setItem</span>(<span class="hljs-string">"lv"</span>, <span class="hljs-string">"9"</span>);
<span class="hljs-comment">// 三种读方法</span>
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-variable language_">localStorage</span>.<span class="hljs-property">nick</span>)
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-variable language_">localStorage</span>[<span class="hljs-string">"uid"</span>])
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">getItem</span>(<span class="hljs-string">"lv"</span>))
<span class="hljs-comment">// 通用删除</span>
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">removeItem</span>(<span class="hljs-string">"nick"</span>)
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">removeItem</span>(<span class="hljs-string">"uid"</span>)
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">removeItem</span>(<span class="hljs-string">"lv"</span>)
<span class="hljs-comment">// delete 删除方法</span>
<span class="hljs-comment">// delete localStorage.nick</span>
<span class="hljs-comment">// 全部清除</span>
<span class="hljs-comment">// localStorage.clear()</span>
<span class="hljs-comment">// 读</span>
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">"---"</span>)
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-variable language_">localStorage</span>.<span class="hljs-property">nick</span>)
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-variable language_">localStorage</span>[<span class="hljs-string">"uid"</span>])
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">getItem</span>(<span class="hljs-string">"lv"</span>))
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">"---"</span>)
</code></div></pre>
<h4><a id="132__70"></a>1.3.2 查看所有键值对</h4>
<p>方法:<code>key()</code></p>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-comment">// 写</span>
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-property">nick</span> = <span class="hljs-string">"有勇气的牛排"</span>;
<span class="hljs-variable language_">localStorage</span>[<span class="hljs-string">"uid"</span>] = <span class="hljs-number">1</span>;
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">setItem</span>(<span class="hljs-string">"lv"</span>, <span class="hljs-string">"9"</span>);
<span class="hljs-comment">// 遍历所有键值对</span>
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i < <span class="hljs-variable language_">localStorage</span>.<span class="hljs-property">length</span>; i++) {
<span class="hljs-keyword">let</span> key = <span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">key</span>(i);
<span class="hljs-keyword">let</span> value = <span class="hljs-variable language_">localStorage</span>.<span class="hljs-title function_">getItem</span>(key)
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(key + <span class="hljs-string">" : "</span> + value)
<span class="hljs-comment">// alert(`${key}: ${localStorage.getItem(key)}`);</span>
}
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/c3d4a8d5f030684f4376cf1896f55c3a.png" alt="image.png" /></p>
<h4><a id="133_json_89"></a>1.3.3 存储json对象</h4>
<pre><div class="hljs"><code class="lang-javascript"><span class="hljs-comment">// 存储json对象</span>
<span class="hljs-variable language_">localStorage</span>.<span class="hljs-property">userinfo</span> = <span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">stringify</span>({<span class="hljs-attr">uid</span>: <span class="hljs-number">1</span>, <span class="hljs-attr">nick</span>: <span class="hljs-string">"有勇气的牛排"</span>})
<span class="hljs-comment">// 读取</span>
<span class="hljs-keyword">let</span> userinfo = <span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">parse</span>(<span class="hljs-variable language_">localStorage</span>.<span class="hljs-property">userinfo</span>)
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(userinfo.<span class="hljs-property">uid</span>)
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(userinfo.<span class="hljs-property">nick</span>)
</code></div></pre>
<h2><a id="2_sessionStorage_104"></a>2 sessionStorage</h2>
<h3><a id="21_sessionStorage_105"></a>2.1 sessionStorage介绍</h3>
<p>使用方法同<code>localStorage</code>,但是有如下不同:</p>
<ul>
<li>数据仅存在于当前浏览器标签页。</li>
<li>同源且同一标签页下的iframe之间数据共享。</li>
<li>具有相同页面的另一个标签页将会有不同的存储。</li>
<li>浏览器关闭后,数据不保留。</li>
</ul>
<h3><a id="22__113"></a>2.2 使用方法</h3>
<p>请参考localStorage</p>
留言