八回目ーー関数後半、戻り値ーー
関数は急に難しくなった気がします。
ですがこの関数が重要なので覚えるしかないです。
引き続き、今度は引数に対して『戻り値』です。
関数に引数を与え、呼び出した処理結果を戻り値というらしいです。
が、今まで習ってきた中で一番意味不明でした。
良く調べてみた所
関数――料理、ショップ、職業等
引数――材料、売り物、職種等
関数とは引数を入れる入れ物のようなもの。
そして戻り値は
料理を作る為の材料から出来上がった『完成品』
ショップで購入する商品の『合計金額』
質問に答え自分に合った職業を探す『職業診断』
イメージではこんな感じなのだと思いました。
それを踏まえて後半に入ります。
1.戻り値
当たり前ですが戻り値は関数に対して使います。
書く場所は処理をする{}の中です。
const add = (a, b) => {
return a + b;
};
この『return』が戻り値を意味します。
ですが、この状態では引数の数値が書かれていないのでエラーとなる為
const sum = add(1, 3);
console.log(sum);
addに数値を与え、『sum』という入れ物に戻り値の計算合計を入れます。
そして、sumを出力するためのコードを書きます。
const half = (number) => {
return number / 2;
}
const result = half(200);
console.log(`200の半分は${result}です`);
const remainder = (count) => {
return count % 2;
}
remainder(200);
console.log("200は2で割り切れます");
基本的に引数と戻り値は一緒に使うらしいので、前回の引数だけというのは中途半端な状態なのだと思います。
2.if文を使う
上記の下コードは割り切れる計算ですが、もし割り切れないなら別の結果を出す場合です。
const check = (number) => {
return number % 3 === 0;
}
numberを3で割った時0になれば割り切れるというものです。
そこにnumberの値(引数)を与え、if文を書きます。
if(check(200)) {
console.log(“割り切れるので3の倍数です”);
} else {
console.log(“割り切れないので3の倍数ではありません”);
}
if文の条件式は引数を与えるだけで良いです。
引数の計算を行い結果を出すのが戻り値なので、呼び出された処理結果がif文やelse文にかかりどちらかの処理結果が出てきます。
200は3では割り切れないので『割り切れないので3の倍数ではありません』が出力されます。
3.スコープ
関数の処理の中にconstを定義した定数○○はその処理の中でしか使えません。
そして、その範囲を『スコープ』というらしいです。
const introduct = () => {
const name = “小説家になろう”;(使える範囲)
}
(使えない範囲)
こんな感じです。
関数の中で使った定数は外では使えないと思えば良いでしょう。
ではどうすればいいのかというと
const name = “小説家になろう”;
const introduct = () => {
}
関数の中に書かなければいいだけです。
定数の入れ物の中に入れるだけなので関数の中で定義しなくても良いということですね。
これはif文やwhile文でも同じらしいです。
スコープのメリットは使う範囲が狭いことです。
同じ名称は使えなくなりますが、ゲームのコードは膨大で複雑でしょうし、ブログを作る為に使うjavascriptのコードもかなり長い時があり、狭い範囲で覚える量が少ないというのは楽が出来ます。
できればまとめというか、今回の関数の総合を作ろうと思ったのですが、かなり難しいので次回までに作れれば作って投稿したいと思います。
最終目的
・勿論手に職を付ける、若しくはお金を稼ぐ
・簡単なゲーム(リバーシや簡易シューティングなど)を作る
・フリーソフトで販売
短期目標
・大まかな流れを覚える
・プログラミングを理解する
上記の内容は覚える中で変わることがあると思います。