【5分でわかる】JavaScriptのローカルストレージ入門 - ブラウザにデータを保存する仕組み
こんにちは、とまだです。
JavaScriptを学習していて、「データを保存したいけど、データベースは難しそう...」と思ったことはありませんか?
私も最初は同じでした。しかし、実はブラウザにはローカルストレージという便利な仕組みがあって、ブラウザを閉じても、タスクが消えないようにする機能が使えるんです。
今回は、このローカルストレージを使って、誰でも簡単にデータを保存・読み込みできる方法を、日記帳に例えながら解説していきます。
ローカルストレージとは?日記帳で理解する基本概念
ローカルストレージって聞くと難しそうですよね。
でも実は、ブラウザに備え付けられた日記帳のようなものなんです。
普通の日記帳を想像してみてください。
- 何かを書き込める
- 後で読み返せる
- 破らない限りずっと残る
ローカルストレージはブラウザにデータを保存する仕組みのことです。ユーザーがブラウザを閉じても保存したデータは消えずに再起動後も保持されます。
なぜローカルストレージが便利なのか
「変数にデータを入れておけばいいんじゃない?」
そう思うかもしれません。
でも、変数には大きな弱点があります。ページを再読み込みするとリセットされます。
例えば、TODOアプリを作った場合を考えてみましょう。
変数だけの場合:
let tasks = ["買い物", "勉強", "運動"];
// ページを更新すると... 全部消える!
ローカルストレージを使う場合:
// データを保存
localStorage.setItem('tasks', JSON.stringify(["買い物", "勉強", "運動"]));
// ページを更新しても... データは残ってる!
つまり、ページをリロードしてもデータが保持されますという特徴があるんです。
ローカルストレージの3つの基本操作
ローカルストレージの使い方は、たった3つの操作を覚えるだけです。
1. データを保存する(書き込む)
ローカルストレージにデータを保存するにはlocalStorage.setItem()を使います。
// 文字列を保存
localStorage.setItem('username', 'とまだ');
// 数値を保存(文字列として保存される)
localStorage.setItem('score', '100');
// 日付を保存
localStorage.setItem('lastLogin', '2025-07-23');
日記帳にペンで書くように、setItem
でデータを保存します。
ポイントは、localStorage.setItem()にはキーと値をセットで指定しますということです。
2. データを取得する(読み出す)
ローカルストレージに保存したデータを取得するにはlocalStorage.getItem()を使います。
// 保存したデータを取得
const username = localStorage.getItem('username');
console.log(username); // "とまだ"
const score = localStorage.getItem('score');
console.log(score); // "100"
日記帳を開いて読むように、getItem
でデータを取り出します。
3. データを削除する(消す)
不要になったデータは削除できます。
// 特定のデータを削除
localStorage.removeItem('username');
// すべてのデータを削除
localStorage.clear();
localStorage.removeItem()はローカルストレージのデータを削除します。
日記帳の1ページを破るように、特定のデータだけ消すこともできます。
実践!TODOリストでローカルストレージを使ってみよう
では、実際にTODOリストを作りながら、ローカルストレージの使い方を体験してみましょう。
シンプルなTODOリストの実装
<!DOCTYPE html>
<html>
<head>
<title>TODOリスト</title>
</head>
<body>
<h1>今日のTODO</h1>
<input type="text" id="taskInput" placeholder="タスクを入力">
<button onclick="addTask()">追加</button>
<ul id="taskList"></ul>
<script>
// ページ読み込み時にタスクを表示
window.onload = function() {
displayTasks();
};
// タスクを追加
function addTask() {
const input = document.getElementById('taskInput');
const task = input.value.trim();
if (task === '') {
alert('タスクを入力してください');
return;
}
// 既存のタスクを取得
let tasks = JSON.parse(localStorage.getItem('tasks') || '[]');
// 新しいタスクを追加
tasks.push(task);
// ローカルストレージに保存
localStorage.setItem('tasks', JSON.stringify(tasks));
// 入力欄をクリア
input.value = '';
// タスクを再表示
displayTasks();
}
// タスクを表示
function displayTasks() {
const taskList = document.getElementById('taskList');
const tasks = JSON.parse(localStorage.getItem('tasks') || '[]');
// リストをクリア
taskList.innerHTML = '';
// タスクを1つずつ表示
tasks.forEach((task, index) => {
const li = document.createElement('li');
li.innerHTML = ``;
taskList.appendChild(li);
});
}
// タスクを削除
function deleteTask(index) {
let tasks = JSON.parse(localStorage.getItem('tasks') || '[]');
tasks.splice(index, 1);
localStorage.setItem('tasks', JSON.stringify(tasks));
displayTasks();
}
</script>
</body>
</html>
このコードのポイントは、配列を保存する時にJSON.stringify()
を使い、取り出す時にJSON.parse()
を使うことです。
なぜなら、ローカルストレージに配列を保存するには、配列をJSON文字列に変換してから、localStorage.setItem()メソッドを使用しますからです。
ローカルストレージの注意点とベストプラクティス
1. 容量制限がある
ローカルストレージは5MBまでデータを保存できます。
これは文字にすると約500万文字。普通の使い方なら十分ですが、画像データなどは向いていません。
2. 文字列しか保存できない
オブジェクトや配列を保存したい場合は、必ずJSON形式に変換する必要があります。
// オブジェクトを保存する場合
const user = {
name: 'とまだ',
age: 30,
skills: ['JavaScript', 'React', 'Node.js']
};
// JSON文字列に変換して保存
localStorage.setItem('user', JSON.stringify(user));
// 取り出す時はパースする
const savedUser = JSON.parse(localStorage.getItem('user'));
3. セキュリティに注意
ユーザーの個人情報など、機密性の高い情報には使わないようにしましょう。
パスワードやクレジットカード情報などは、絶対にローカルストレージに保存してはいけません。
4. エラーハンドリングを忘れずに
ローカルストレージが使えない環境もあるので、エラー処理を入れておきましょう。
try {
localStorage.setItem('test', 'value');
} catch (e) {
console.error('ローカルストレージが使用できません:', e);
// 代替処理
}
ローカルストレージの実用的な活用例
ユーザー設定の保存
ユーザーの設定(例:テーマの選択、言語設定など)を保存することで、次回アクセス時に同じ設定を適用できます。
// ダークモードの設定を保存
function toggleDarkMode() {
const isDark = document.body.classList.toggle('dark-mode');
localStorage.setItem('darkMode', isDark);
}
// ページ読み込み時に設定を復元
window.onload = function() {
const isDark = localStorage.getItem('darkMode') === 'true';
if (isDark) {
document.body.classList.add('dark-mode');
}
};
フォームの一時保存
入力途中のフォームデータを自動保存して、誤ってページを離れても復元できるようにします。
// 入力内容を自動保存
document.getElementById('message').addEventListener('input', function(e) {
localStorage.setItem('draft', e.target.value);
});
// ページ読み込み時に下書きを復元
window.onload = function() {
const draft = localStorage.getItem('draft');
if (draft) {
document.getElementById('message').value = draft;
}
};
よくある質問と解決方法
Q1: ローカルストレージのデータはいつまで残る?
A: ユーザーが明示的に削除しない限り、永続的に保存されます。
ブラウザのキャッシュクリアやプライベートブラウジングでは削除される可能性があります。
Q2: 他のサイトからデータを見られる?
A: いいえ。データストアはドメインごと(ブラウザーに読み込まれるウェブアドレスが別個のものごと)に用意されています。
example.comのデータをexample2.comから見ることはできません。
Q3: ブラウザでデータを確認する方法は?
A: デベロッパーツールで確認できます。
「デベロッパーツール」(右クリック➡検証)➡「アプリケーション」(隠れている場合は「>>」を押します)を選択します。
そして、「ストレージ」➡「ローカルストレージ」➡「現在のページ」を確認すると、保存されているデータが見られます。
まとめ:ローカルストレージで広がる可能性
JavaScriptのローカルストレージは、ブラウザに備わった便利な日記帳のようなものです。
今日学んだポイントをまとめると:
setItem
でデータを保存getItem
でデータを取得removeItem
でデータを削除- 配列やオブジェクトは
JSON.stringify
とJSON.parse
を使う - セキュリティに注意して使う
ローカルストレージを使えば、データベースなしでも簡単なWebアプリが作れます。
もっと本格的にJavaScriptを学びたい方は、Learning Next Schoolでステップバイステップで学習できます。JavaScriptの基礎から応用まで、練習問題を解きながら確実に身につけられますよ。
さあ、今すぐブラウザの開発者ツールを開いて、最初のデータを保存してみましょう!
きっと、Webアプリ開発の新しい扉が開くはずです。
著者について

とまだ
フルスタックエンジニア
Learning Next の創設者。Ruby on Rails と React を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。
著者の詳細を見る →