JavaScript入門講座|ローカルストレージついて学ぼう

JavaScript
アイキャッチ
うさタブ
うさタブ

今日はローカルストレージについて勉強するッピ!

ユウキ
ユウキ

ローカルストレージ??

うさタブ
うさタブ

ローカルストレージは、
ブラウザ上(自分のPC)に【変数】データを保存して、
その変数データを呼び出して計算したり、文字を表示したりする仕組みのことッピ!

うさタブ
うさタブ

このローカルストレージが理解できれば、

JavaScriptでロールプレイングゲームシミュレーションゲーム

セーブポイントを作ることもできるッピ!

ユウキ
ユウキ

ほんとかよ! すげえええええ

うさタブ
うさタブ

本当ッピよ!

うさタブ
うさタブ

JavaScriptは基本的に

ページを離れたらそのデータは消えてしまうことが多いッピが、

このローカルストレージを使うことで

データを保存して使っていろんなことをすることができるんだッピ~

ユウキ
ユウキ

ふーん

おもしろそうじゃん! さっそくやってみようぜ

サンプルプログラム

好きな名前を入力して下さい

全体のコード

<!-- 見えない部分 -->
<html>
<head></head>
<!-- ↓ここから見える部分↓ -->
<body>
<!-- ↓この下にJavaScriptを入力してね!↓ -->
<script>

// データのセーブ
function save() {
   let sample_data = document.getElementById("input_data").value;
   localStorage.setItem("sample_data", sample_data);
    }

// データの読み込み
function load() {
   let sample_data = "";
    if(!localStorage.getItem("sample_data")) {
          sample_data = "No data";
        } else {
          sample_data = localStorage.getItem("sample_data");
        }

        document.getElementById("data_box").innerHTML = sample_data;
      }


</script>
<!-- ↓この下にHTMLタグを入力してね!↓ -->

<p>好きな名前を入力して下さい</p>
<input name="input_data" id="input_data" type="text" value="" />

<button onclick="save();">セーブ</button>
<button onclick="load();">ロード</button>

<p id="data_box"></p>

<!-- ここまで! -->
</body>
</html>
うさタブ
うさタブ

今回はこのコードを詳しく解説していくッピ♫

スポンサーリンク
スポンサーリンク

ローカルストレージついて学ぼう

必要なもの

うさタブ
うさタブ
メモ帳
  • メモ帳
  • ブラウザ

が必要ッピ!

元になるコード

<!-- 見えない部分 -->
<html>
<head></head>
<!-- ↓ここから見える部分↓ -->
<body>

<!-- ↓この下にJavaScriptを入力してね!↓ -->
<script>






</script>
<!-- ↓この下にHTMLタグを入力してね!↓ -->

<!-- ここまで! -->
</body>
</html>
うさタブ
うさタブ

↑のコードをコピーして、

準備ができたらレッツ・ラーニングッピ!

うさタブ
うさタブ

まずは<body></body>

<!-- ↓この下にHTMLタグを入力してね!↓ -->
<p>好きな名前を入力して下さい</p>
<input name="input_data" id="input_data" type="text" value="" />

<button onclick="save();">セーブ</button>
<button onclick="load();">ロード</button>

<p id="data_box"></p>

と入力するッピ!

ユウキ
ユウキ

お? こんな感じかな

うさタブ
うさタブ

いい感じッピ!

ユウキ
ユウキ

あれ?

ボタン押したけど、まだ動かないんだなぁ

うさタブ
うさタブ

その通りっぴ!

うさタブ
うさタブ

まずは
出力ブロックと入力ブロックをつくって、

このあとにプログラムを組んでいくッピ~!

うさタブ
うさタブ

ちなみにこのタグは

<p>段落好きな名前を入力して下さい
</p>段落終了

<input入力ボックス作成 name 判別名は=”input_data id 住所は=”input_datatypeボックスの種類=”text文字valueデフォルト入力値=”” />

<buttonボタン作成 onclick クリックしたら=”save();このプログラムが動きます“>セーブ</buttonボタン終了>
<buttonボタン作成 onclick クリックしたら=”load()このプログラムが動きます;“>ロード</buttonボタン終了>

という意味になるッピよ~

ここまでのコード
<!-- 見えない部分 -->
<html>
<head></head>
<!-- ↓ここから見える部分↓ -->
<body>

<!-- ↓この下にJavaScriptを入力してね!↓ -->
<script>



</script>

<!-- ↓この下にHTMLタグを入力してね!↓ -->

<p>好きな名前を入力して下さい</p>
<input name="input_data" id="input_data" type="text" value="" />

<button onclick="save();">セーブ</button>
<button onclick="load();">ロード</button>

<p id="data_box"></p>

<!-- ここまで! -->
</body>
</html>

セーブプログラムをつくる

うさタブ
うさタブ

次はデータのセーブ・プログラムを作るッピ!

ユウキ
ユウキ

なんだか難しそうだなぁ・・・

うさタブ
うさタブ

安心するッピ!

このうさタブがユウキくんをスーパープログラマーにみちびくッピよ~

うさタブ
うさタブ

セーブ・プログラムは<script></script>のあいだに

function save() {
   let sample_data =         document.getElementById("input_data").value;
   localStorage.setItem('sample_data', sample_data);
    }

と入力するッピ!

うさタブ
うさタブ

これは

functionまとめプログラム save()  名前はsave{  です
let変数 sample_data 好きな変数名  = documentホームページの中にある.getElementid=(input_data)のById(input_data入力ボックスへ).value入力したデータです;
localStorageローカルストレージへ.setItemデータを記録します(‘sample_dataデータ名はsample_data‘, sample_data中身に変数sample_dataを記録);
}

という意味になるッピ!

ユウキ
ユウキ

知ってるぜ!

fanction関数で、命令文をまとめてセットにすることができるんだよな!

うさタブ
うさタブ

その通りッピ! ユウキくんさすがッピよ~

ここまでのコード
<!-- 見えない部分 -->
<html>
<head></head>
<!-- ↓ここから見える部分↓ -->
<body>
<!-- ↓この下にJavaScriptを入力してね!↓ -->
<script>

// データのセーブ
function save() {
   let sample_data = document.getElementById("input_data").value;
   localStorage.setItem('sample_data', sample_data);
    }

</script>
<!-- ↓この下にHTMLタグを入力してね!↓ -->

<p>好きな名前を入力して下さい</p>
<input name="input_data" id="input_data" type="text" value="" />

<button onclick="save();">セーブ</button>
<button onclick="load();">ロード</button>

<p id="data_box"></p>

<!-- ここまで! -->
</body>
</html>

データを出力する

うさタブ
うさタブ

最後にデータを出力するプログラムをつくるッピ!

ユウキ
ユウキ

出力~?

うさタブ
うさタブ

そうっピ!

データを入力するだけじゃダメッピ!
それを引き出して、計算したりアレンジすることに意味があるッピ!

うさタブ
うさタブ

データを出力するには<script></script>

function load() {
   let sample_data = "";
    if(!localStorage.getItem("sample_data")) {
          sample_data = "No data";
        } else {
          sample_data = localStorage.getItem("sample_data");
        }

        document.getElementById("data_box").innerHTML = sample_data;
      }

と入力するッピよ~

うさタブ
うさタブ

これは

function命令セット load() ロードプログラム {
let変数  sample_dataサンプルデータ = “”空白;

if(もしも!localStorageローカルストレージに.getItem保存したデータと(sample_data変数の中身がないなら)) {
sample_data変数の文字データは = No dataNo dateと表示します;

} elseそれ以外なら {
sample_data変数データは = localStorageローカルストレージの.getItem保存データ(“sample_data”サンプルデータを取り出します);
}

documentホームページの中の.getElement以下のid(住所)ById(“data_box”detaboxを).innerHTML書き換えて = sample_dataサンプルデータに;
}

という意味になるッピ!

うさタブ
うさタブ

これを最初のタグと合わせて

<p>段落好きな名前を入力して下さい
</p>段落終了

<input入力ボックス作成 name 判別名は=”input_data id 住所は=”input_datatypeボックスの種類=”text文字valueデフォルト入力値=”” />

<buttonボタン作成 onclick クリックしたら=”save();このプログラムが動きます“>セーブ</buttonボタン終了>
<buttonボタン作成 onclick クリックしたら=”load()このプログラムが動きます;“>ロード</buttonボタン終了>

となるッピ!

ユウキ
ユウキ

おおお! なんか文字が出てきた~!

うさタブ
うさタブ

ムフフ! これがプログラミングのちからッピ!

うさタブ
うさタブ

この入力出力をいかして、
いろんなプログラムを組んでみるッピよ~

ここまでのコード
<!-- 見えない部分 -->
<html>
<head></head>
<!-- ↓ここから見える部分↓ -->
<body>
<!-- ↓この下にJavaScriptを入力してね!↓ -->
<script>

// データのセーブ
function save() {
   let sample_data = document.getElementById("input_data").value;
   localStorage.setItem('sample_data', sample_data);
    }

// データの読み込み
function load() {
   let sample_data = "";
    if(!localStorage.getItem("sample_data")) {
          sample_data = "No data";
        } else {
          sample_data = localStorage.getItem("sample_data");
        }

        document.getElementById("data_box").innerHTML = sample_data;
      }

</script>
<!-- ↓この下にHTMLタグを入力してね!↓ -->

<p>好きな名前を入力して下さい</p>
<input name="input_data" id="input_data" type="text" value="" />

<button onclick="save();">セーブ</button>
<button onclick="load();">ロード</button>

<p id="data_box"></p>

<!-- ここまで! -->
</body>
</html>

ローカルストレージは自分のPCだけ?

ユウキ
ユウキ

そういえば、このローカルストレージ保存したデータどこにいくんだ
インターネットに保存されるのか?

うさタブ
うさタブ

それは自分のブラウザに記憶されるんだッピ!
マックアイフォンなら、Safari
AndroidならGoogle Chrome
ウィンドウズなら、マイクロソフトEdgeになるッピ!

うさタブ
うさタブ

だから、ブラウザの履歴を削除するとデータも消えてしまうから気をつけるッピ

ユウキ
ユウキ

なるほどな~

ローカルストレージ・データを数字へ変換する

ユウキ
ユウキ

なあうさタブ

ちょっと質問なんだけど・・・

うさタブ
うさタブ

どうしたッピ~?

ユウキ
ユウキ

実は、ローカルストレージに保存したデータを使って
計算をしようとおもったんだけど上手くいかなくて・・・

<script>
// データのセーブ
function save() {
   let save_data = document.getElementById("input_data").value;
   localStorage.setItem("localStorage_save_data", save_data);
    }

// データの読み込み
function load() {
   let save_data = "";
    if(!localStorage.getItem("localStorage_save_data")) {
          save_data = "No data";
        } else {
          save_data = localStorage.getItem("localStorage_save_data");
        }

        save_data = save_data +10;//計算プログラム
        document.getElementById("data_box").innerHTML = save_data;
      }
</script>

<p>好きな数字を入力して下さい。それに10を足します。</p>
<input name="input_data" id="input_data" type="text" value="" />

<button onclick="save();">セーブ</button>
<button onclick="load();">ロード</button>

<p id="data_box"></p>
ユウキ
ユウキ

なんか入力した数字に足し算されずに、
うしろに10が表示されるんだよな・・・

うさタブ
うさタブ

なるほど!
これはきっと数字文字データになっているッピね~

うさタブ
うさタブ

そんなときは

Number()

関数を使ってみるッピ!

ユウキ
ユウキ

Number関数??

うさタブ
うさタブ

これは、文字データを数字データに変換してくれる命令文ッピ!

もちろん、半角英数字数字じゃないと変換できないから注意するッピよ

ユウキ
ユウキ

そんなものがあるのか!

うさタブ
うさタブ

さきほどの計算プログラム

save_data = Number(save_data)+10;//計算プログラム

に変えてあげるッピ!

きっとそれで上手くいくッピよ♫

ユウキ
ユウキ

できた~!

全体のコードの確認

<!-- 見えない部分 -->
<html>
<head></head>
<!-- ↓ここから見える部分↓ -->
<body>
<!-- ↓この下にJavaScriptを入力してね!↓ -->
<script>
// データのセーブ
function save() {
   let save_data = document.getElementById("input_data").value;
   localStorage.setItem("localStorage_save_data", save_data);
    }

// データの読み込み
function load() {
   let save_data = "";
    if(!localStorage.getItem("localStorage_save_data")) {
          save_data = "No data";
        } else {
          save_data = localStorage.getItem("localStorage_save_data");
        }

        save_data = Number(save_data)+10;//変換プログラム
        document.getElementById("data_box").innerHTML = save_data;
      }
</script>

<p>好きな数字を入力して下さい。それに10を足します。</p>
<input name="input_data" id="input_data" type="text" value="" />

<button onclick="save();">セーブ</button>
<button onclick="load();">ロード</button>

<p id="data_box"></p>
<!-- ここまで! -->
</body>
</html>
学習のまとめ
  • localStorage.setItemで、ローカルストレージへ保存
  • localStorage.getItemで、ローカルストレージから読み込み
  • Number()関数で文字データを数字に変換する

うさタブ
うさタブ

上手くできたッピか?

これからも色んなゲーム作りやプログラムの解説をしていくッピ!

次回も楽しみにしているッピよ~~!

スポンサーリンク

どうしてもわからない、そんなときは?

ユウキ
ユウキ

うさタブ!

オレ、もっと本格的にゲームが作りたいんだ

アイカ
アイカ

私もだわ!

もっとたくさん実用的なコードを

学ぶことってできないかしら?

うさタブ
うさタブ

おお、2人ともやる気ッピね!

ゲームの作り方を学ぶなら、コレとかどうッピか?


うさタブ
うさタブ
Udemy」テレビでも有名な動画教材
人気の機械学習からUnityゲーム講座まで選び放題ッピ!

うさタブ
うさタブ

2DアクションRPG脱出ゲーム

3Dゲーム制作講座まで

買い切り講座だからいつでも勉強し放題ッピよ~!

ユウキ
ユウキ

お!いいじゃん!

アイカ
アイカ

あと、どこか素敵な素材を売っているところはないかしら? 公式の素材販売だと、クレカ支払いしかなくて・・・

ユウキ
ユウキ

小学生じゃクレカで支払えないぜ~

うさタブ
うさタブ

ゲームの素材を買いたいなら、

DLsiteBoothとかどうッピか?

うさタブ
うさタブ

素敵なドット絵や音楽素材がいっぱい売ってるッピ!

うさタブ
うさタブ

しかもUnityアセットストアと違って

クレカ支払いじゃなく、コンビニ支払いができるのもポイントッピ!

ユウキ
ユウキ

すげーカッコいい素材がいっぱいある!

アイカ
アイカ

わたしもさっそくチェックしてみようかな♪

スポンサーリンク
JavaScriptJSゲームプログラミング
学んで遊んでジャンケンポン!
タイトルとURLをコピーしました