こんにちは朱夏です。
今回はJavaScriptの関数を使って、コードをまとめてスッキリさせたいと思います。
同じコードを何度も書くのは大変だからまとめたいな。
こんな時に使えるのが関数です。
関数は何行もある処理を1つのキーワードで使えるようになるのはとても便利です。
それではいってみましょう。
JavaScriptのコード
解説
あとがき
JavaScriptのコード
先ずはコードです。
'use strict'; var i = 0; var hint = document.getElementById('hintbox'); var randomnumber = Math.floor(Math.random() * 100 + 1); var number = document.getElementById('number'); function numgame() { i++; var inputnum = document.getElementById('exampleInputNum').value; document.getElementById('answer').innerText = inputnum; if(randomnumber == inputnum) { hint.insertAdjacentHTML("beforeend", '<p class="mb-0">' + i + '回目</p>' + '<p>正解です</p>'); number.innerText = '正解は' + randomnumber + 'です'; } else if(randomnumber > inputnum) { hint.insertAdjacentHTML("beforeend", '<p class="mb-0">' + i + '回目</p>' + '<p>もっと大きいよ:回答' + inputnum + '</p>'); } else { hint.insertAdjacentHTML("beforeend", '<p class="mb-0">' + i + '回目</p>' + '<p>もっと小さいよ:回答' + inputnum + '</p>'); } }; document.getElementById('buttonsubmit').addEventListener( 'click', () => { if(i == 4) { numgame(); number.innerText = '正解は' + randomnumber + 'です'; } else { numgame(); } });
こんな感じです。
クリックイベントの前に変数や関数を宣言しています。
組み込むためのパーツセットを作っているようなイメージですね。
解説
それでは解説していきます。
関数としてまとめた処理はこの部分です。
function numgame() { i++; var inputnum = document.getElementById('exampleInputNum').value; document.getElementById('answer').innerText = inputnum; if(randomnumber == inputnum) { hint.insertAdjacentHTML("beforeend", '<p class="mb-0">' + i + '回目</p>' + '<p>正解です</p>'); number.innerText = '正解は' + randomnumber + 'です'; } else if(randomnumber > inputnum) { hint.insertAdjacentHTML("beforeend", '<p class="mb-0">' + i + '回目</p>' + '<p>もっと大きいよ:回答' + inputnum + '</p>'); } else { hint.insertAdjacentHTML("beforeend", '<p class="mb-0">' + i + '回目</p>' + '<p>もっと小さいよ:回答' + inputnum + '</p>'); } };
関数を作る場合は以下の様に書きます。
function 関数の名前() { //処理内容 };
functionは固定です。
その後ろに書かれた文字列が関数の名前になります。
今回の数当てゲームではnumgame()という名前の関数にしました。
()は関数の後ろに必ず付けます。
引数というものを使う場合はここを使うのですが、今回は中身無しのかっこだけ使います。
関数として書いたコードには注意があります。
次に、作った関数を使って処理を実行しているのはこちら。
document.getElementById('buttonsubmit').addEventListener( 'click', () => { if(i == 4) { numgame(); number.innerText = '正解は' + randomnumber + 'です'; } else { numgame(); } });
前回同じ処理が繰り返し書かれていた部分が、「numgame();」だけになりました。
これのおかげで全体のコード量は2/3くらいになっています。
あとがき
JavaScriptの関数を使って処理をまとめてみました。
まだ引数を使ったりする様な高度な使い方は出来ていませんが、基本的な処理をまとめる使い方が出来るようになるだけで、コードを書くのがかなり楽になりました。
今回のまとめとしてはこちら。
- 関数で複数行の処理をまとめられる
- 作った関数は何度でも使える
- 関数の宣言(function)の最後には”;”が必要
というわけで、今回の数当てゲームはこれで完成としたいと思います。
JavaScriptに慣れるためにあえて細かくコツコツ進めてみましたが、毎日触るのは割と有効でした。
抜け落ちていかないうちに、JavaScriptはまだまだ触っていこうと思います。
今回は以上です。
次回もよろしくお願いします。