localStorage(ブラウザ保存)
localStorage.setItem getItem removeItem
ブラウザを閉じても消えない永続的なストレージです。約5〜10MBまで保存でき、文字列のみ対応します。
デモ:テキストを localStorage に保存
ページを再読み込みしても内容が残ります
テーマ設定(localStorage に保存):
コード例
js
// 保存(文字列のみ)
localStorage.setItem('key', 'value');
// オブジェクト・配列はJSONに変換
localStorage.setItem('user', JSON.stringify({ name: 'Alice', age: 30 }));
// 取得
const value = localStorage.getItem('key'); // "value" or null
const user = JSON.parse(localStorage.getItem('user') ?? 'null');
// 削除
localStorage.removeItem('key');
localStorage.clear(); // 全キーを削除
// 全キーの列挙
for (let i = 0; i < localStorage.length; i++) {
const key = localStorage.key(i);
console.log(key, localStorage.getItem(key));
}
// 容量チェック(ブラウザによって異なる)
// 超過すると QuotaExceededError がスロー
try {
localStorage.setItem('key', largeData);
} catch (e) {
if (e instanceof DOMException && e.name === 'QuotaExceededError') {
console.error('容量超過');
}
}
// storage イベント(他のタブでの変更を検知)
window.addEventListener('storage', (e) => {
console.log('変更されたキー:', e.key);
console.log('新しい値:', e.newValue);
console.log('古い値:', e.oldValue);
});比較:ブラウザストレージ三種
| 観点 | localStorage | sessionStorage | Cookie |
|---|---|---|---|
| 有効期間 | 永続(手動削除まで) | タブ閉じるまで | 指定した期限まで |
| 容量 | ~5-10MB | ~5MB | ~4KB |
| サーバー送信 | ❌ しない | ❌ しない | ✅ 自動送信 |
| 用途 | 設定、ドラフト保存 | 一時的なフォームデータ | セッション、認証トークン |
🤖 AIプロンプトテンプレート
以下のようなlocalStorageを使ったデータ永続化のサンプルコードを生成してください: - localStorage.setItem / getItem / removeItem / clearの基本操作 - JSON.stringify/parseを使ったオブジェクト・配列の保存と取得 - ユーザー設定(テーマ・言語など)の永続化パターン - QuotaExceededErrorのtry-catchによる容量超過ハンドリング - storageイベントを使った複数タブ間のデータ同期
⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。