八回目ーー関数前半、引数ーー
関数に入ります。
プログラミングではよく使うらしく、必須と言える部分です。
ややこしくなるので紙にどのようになるのか文章で書いておかないと頭がこんがらがりますね。
今回は関数について学びました。
中学の数学にも出て来る関数。
簡単に説明すると
関数とは、両辺の値同士の関係を示していることをいいます。
もっと言えば、数学ならば必ず両辺の値が同じになる計算を示します。
一冊600円の小説を複数冊買う代金を求める式。
当然一冊なら1×600で、これは『購入冊数×一冊の代金』となり、その合計は『合計代金』となります。
購入冊数が増えれば2×600、8×600……と増えていくのは当たり前で、一冊の代金が変わることも無く、式の法則性も変わることなく比例していきます。
数学を学ぶ場ではないのでここまでとし、これからプログラミングでの関数を学んだことを復習しようと思います。
1.関数とは
では、プログラミングでの関数が何なのかというと『幾つかの処理をまとめたもの』を言います。
先に結果を言うと、やっていることは今までの変数や定数の器に物を入れる代入と何ら変わりはありません。
HTML&CSSでもそうでしたが、中身の機能が変わるだけで使い方が変わるわけではないのです。(a要素がh要素になることはなく、その使い方(書き方)が異なるわけでもない)
まだ習い始めたばかりなのでどのような時に使うべきなのか、という点を理解してはいません。
HTML&CSSも未だに覚えることが多いのですから使って覚えるほかありませんね。
なので、今まで通りどのようなものなのかだけ触っていきます。
書き方は変わらず代入と同じようにします。
const aaa(定数名) = function() {
console.log(“おはこんばんちは”);
console.log(“関数の学習です”);
}
見て分かるように条件式はありません。
加えて、出力が{}の中にあります。
function()が関数を示し、{}の中が処理となり、定義されるようになります。
しかし、これで結果が出るわけではありません。
最後に『定数名』を書くことで関数の中の処理が実行されます。
const aaa = function() {
console.log(“おはこんばんちは”);
console.log(“関数の学習です”);
}
aaa();
aaaの中に処理する二つが代入され、最後に呼び出すことで出力されています。
なので、今の段階では普通にconnsole.logを使って結果を出力するのと何ら変わりないといえます。
また、ES6のバージョンからfunction()を『() =>』とシンプルに書き換えることができるようになったらしいです。
見た目が矢のように見えることから『アロー関数』といいます。
const aaa = () =>
どちらでも使えますし、何かが変わるわけでもないので使いやすい方を使えば良いでしょう。
2.引数とは
引数とは、関数に与える追加情報の事らしいです。
与えるなら与数の方が分かりやすいのですが、『引数』です。
関数を呼び出す時に一緒に値を渡すことで、関数の中でその値を利用可能とします。
どういうことかというと
『今までの様に何度も同じような文章を書かずともよく、ループ処理のfor文を書かずに多様な処理が出来る』ということです。
複数の人に挨拶をするとします。
今までならfor文を使い人数分繰り返し一人ずつ挨拶するようなコードを書かなければなりませんでした。
しかし、関数で引数を使うと
const greet = (name) => {
console.log(`おはこんばんちは、${name}さん`);
}
greet(“A”);
greet(“B”);
greet(“C”);
このように簡単に書くことが出来る様になります。
引数『name』に()内の値が代入され、${name}の部分に変数や定数と同じ流れで使われます。
3.複数引数
()内の引数ですが、実は『,(コンマ)』で区切ることで複数使うことができます。
const greet = (morning, afternoon) => {
console.log(`午前は${morning}、午後は${afternoon}`);
}
greet(“「おはようございます」”,”「こんにちは」”);
呼び出す値も代入の場所と同じところに『,(コンマ)』で区切って書きます。
console.log(`Aさん、${morning}`);
console.log(`Bさん、${afternoon}`);
このように書けば個別に使うことも出来ます。
今回は文字でしたが、値を数値にすることも可能で、処理を計算式にすると計算させて答えを出すことも出来ます。
この辺りは応用が関わって来るので、まずは基礎と流れを覚えるのが先決でしょう。
最終目的
・勿論手に職を付ける、若しくはお金を稼ぐ
・簡単なゲーム(リバーシや簡易シューティングなど)を作る
・フリーソフトで販売
短期目標
・大まかな流れを覚える
・プログラミングを理解する
上記の内容は覚える中で変わることがあると思います。