LoginSignup
1
2

More than 5 years have passed since last update.

localStorage(ローカルストレージ)の保存・更新・削除をしたい

Posted at

localStorage概要

localStorage(ローカルストレージ)はブラウザにデータを保存する仕様。
似たようなものにCookieがあるが、文字数制限もなく使い勝手がいい。

色々なデータ型でも使えるように関数にまとめてみました。

//Set to LocalStorage
function upDateLocalStorage(key, value, callback) {
  //ローカルストレージがない環境では何もしない
  if(typeof(Storage) === 'undefined'){ alert('Your Browser Not Supportd'); return; }

  var ls = localStorage;

  //登録するデータがオブジェクト(配列含む)なら文字列に変換
  if (Object.prototype.toString.call(value) === '[object Object]'||'[object Array]') {
    value = JSON.stringify(value);
  }

  ls.setItem(key, value);

  //データがlocalStorageに登録された時に発火するイベントを登録することもできる
  if(callback) {
    window.addEventListener('storage', function(e) {
      callback(e);
    });
  }
}

//Get from LocalStorage
function getDataLocalStorage(key) {
  //ローカルストレージがない環境では何もしない
  if(typeof(Storage) === 'undefined'){ alert('Your Browser Not Supportd'); return; }

  var ls = localStorage,
      value = ls.getItem(key);

  if(value === 'true'|| value === 'false') {
    value = !!value //文字列から真偽値に
  } else if (value.match(/[\[|{].*[\]|}]/)) {
    value = JSON.parse(value); //文字列からオブジェクトに
  }

  return value;
}

//clear LocalStorage
localStorage.clear(); //ローカルストレージを空にする

使い方↓


upDateLocalStorage("student1", "tarou");
getDataLocalStorage("student1");
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2