IT基礎

localStorage

中級

読み方:ローカルストレージ|英語:localStorage

ブラウザにデータを保存する仕組みで、Cookieと違いサーバーに送信されないよ。

やさしい説明

localStorageは、ブラウザにデータを永続的に保存する仕組みです。Cookieと違い、サーバーには送信されません。

ダークモードの設定、フォームの入力途中のデータ、ゲームのセーブデータなどを保存するのに使います。

キーと値のペアで保存し、文字列のみ保存可能です。オブジェクトはJSON.stringifyで文字列に変換してから保存します。

基本的な操作

// データを保存(キーと値のペア)
localStorage.setItem("theme", "dark");

// データを取得
const theme = localStorage.getItem("theme"); // "dark"

// データを削除
localStorage.removeItem("theme");

// 全データを削除
localStorage.clear();

// オブジェクトを保存するときはJSON変換が必要
const user = { name: "太郎", score: 100 };
localStorage.setItem("user", JSON.stringify(user));

// 取り出すときはパース
const saved = JSON.parse(localStorage.getItem("user"));
console.log(saved.name); // "太郎"

主な用途

  • 学習進捗の保存 — レッスンをどこまで進めたかをブラウザに記録する(このサイトでも使用)
  • テーマ設定 — ダーク/ライトモードの選択を保存して、次回アクセス時にも反映する
  • フォームの入力途中保存 — 誤ってページを閉じても入力内容を復元できる
  • ゲームのセーブデータ — ブラウザゲームのスコアや進捗を記録する
  • カート情報 — ログイン不要のショッピングサイトで商品をカートに保持する

localStorage・sessionStorage・Cookieの比較

  • localStorage:削除するまで永続。サーバーへ送信されない。容量約5MB。同じオリジン内全タブで共有
  • sessionStorage:タブを閉じると削除。サーバーへ送信されない。容量約5MB。タブごとに独立
  • Cookie:有効期限を設定可能。リクエスト時にサーバーへ自動送信される。容量約4KB

ユーザーの設定や進捗など「クライアントだけで使うデータ」はlocalStorage、サーバーに送る必要があるセッション情報はCookieが適しています。

よくある疑問

Q: localStorageのデータはいつ消える?

A: ブラウザの「キャッシュ・サイトデータを削除」を実行するか、JavaScriptで localStorage.removeItem() または localStorage.clear() を呼ぶまで残ります。ブラウザを閉じても消えません。

Q: localStorageはセキュリティ的に安全?

A: 同じオリジン(ドメイン)のJavaScriptからしかアクセスできません。ただしXSS(クロスサイトスクリプティング)攻撃を受けると読み取られる可能性があります。パスワードや認証トークンなど機密情報の保存には向きません。

Q: 容量の上限はどのくらい?

A: ブラウザによって異なりますが、一般的に1オリジンあたり約5MBです。Cookieの4KBに比べて大幅に多く保存できます。

関連用語

  • Cookie — サーバーへも送信されるブラウザ保存の仕組み
  • ブラウザ — localStorageを管理するクライアント
  • 変数 — JavaScriptでデータを一時保存する仕組み

📖 関連レッスン

レッスンを見る →

関連ブログ記事

❓ 関連するQ&A