第13章 ローカルストレージ

ローカルストレージとは

  • ローカルストレージは、Webページのセッション間でもデータを持続的に保存することができるWeb APIです。
  • クッキーと異なり、サーバーに毎回データを送信しないので、大量のデータをクライアント側で保存するのに適しています。
  • 一般的には、5MB~10MBの保存容量がありますが、ブラウザによっては異なる場合があります。


データの保存

データをローカルストレージに保存するには、setItemメソッドを使用します。

// ローカルストレージにデータを保存する
localStorage.setItem('キー', '値');

// 例: ユーザー名を保存
localStorage.setItem('username', 'Taro');


データの取得

保存したデータを取得するには、getItemメソッドを使用します。

// ローカルストレージからデータを取得する
const value = localStorage.getItem('キー');

// 例: ユーザー名を取得
const username = localStorage.getItem('username');
console.log(username); // Taroと表示される


全てのデータのクリア

ローカルストレージに保存されている全てのデータをクリアするには、clearメソッドを使用します。

// ローカルストレージの全てのデータをクリアする
localStorage.clear();


データの形式

ローカルストレージは、キーと値のペアとしてデータを保存しますが、このキーと値は文字列として保存されます。

そのため、オブジェクトや配列を保存する場合は、JSON形式の文字列に変換してから保存する必要があります。

// オブジェクトを保存する例
const user = {
  name: "Taro",
  age: 25
};

// オブジェクトをJSON形式の文字列に変換して保存
localStorage.setItem('user', JSON.stringify(user));

// 取得する時もJSON形式の文字列をオブジェクトに変換
const storedUser = JSON.parse(localStorage.getItem('user'));
console.log(storedUser.name); // Taroと表示される


ローカルストレージの容量確認

ブラウザによってはローカルストレージの容量が異なることがありますが、多くのモダンブラウザでは5MBから10MBの容量が提供されています。

この容量を超えるとエラーが発生するので、注意が必要です。


セキュリティとの関連

ローカルストレージはJavaScriptからアクセス可能なので、XSS(クロスサイトスクリプティング)の攻撃によりデータが盗まれるリスクがあります。

パスワードやトークンなどの機密情報をローカルストレージに保存することは推奨されません。


セッションストレージとの違い

セッションストレージもWebページのデータ保存のためのAPIですが、ブラウザを閉じるとデータが消える点でローカルストレージとは異なります。

短期的なデータ保存にはセッションストレージを、長期的なデータ保存にはローカルストレージを使用します。

// セッションストレージにデータを保存
sessionStorage.setItem('sessionKey', 'sessionValue');

// セッションストレージからデータを取得
const sessionValue = sessionStorage.getItem('sessionKey');


練習問題1.

ローカルストレージに、キー"username"、値"Taro"を保存してください。

その後、保存したデータを取得し、コンソールに表示してください


練習問題2.

以下のオブジェクトをローカルストレージに保存してください。

保存したオブジェクトをローカルストレージから取得し、オブジェクトのnameプロパティをコンソールに表示してください。

const user = {
  name: "Hanako",
  age: 30
};


練習問題3.

練習問題1で保存したキー"username"のデータをローカルストレージから削除してください。

削除後、再度そのキーでデータを取得し、存在しないことを確認してください(nullが返るはずです)。