この動画はメンバー限定動画です
全ての講座が
月額990円で学び放題
これまで、サイコロを振る処理をするために、次のようなプログラムを利用してきました。
let dice = Math.floor(Math.random() * 6) + 1;
しかし、この処理を使いたいときに、毎回書くのは大変です。そこで、このように「よく使う処理」や「一連の処理をまとめておきたい」といった場合に利用できるのが「関数」という機能です。
関数とは
関数というと難しく感じますがこれは数学用語から来た言葉で、英語ではこれのことを「Function」と言います。これは、英語の意味としては「機能」などの意味もあるため、「機能を作る」といった意味程度に捉えてしまって良いでしょう。
ここでは、サイコロを振る「getDice」という関数を定義してみましょう。次のようなプログラムを書きます。
// function.ts
function getDice(): number {
return Math.floor(Math.random() * 6) + 1;
}
少し不思議な記述が増えましたが、メインの処理はこれまでと同じサイコロを振るための処理が記述されています。これで、「getDice」という関数が使えるようになります。次のように呼び出しましょう。
console.log(getDice());
関数を呼び出す場合は、メソッドと同様にパラメータがなくてもカッコを記述する必要があります。そのため、「()」と空のカッコを記述します。
これで、これまでと同様にサイコロを振って結果を画面に出力することができます。非常にプログラムが分かりやすくなりました。
![](https://tomosta.jp/wp-content/uploads/2024/05/image-97-1024x307.png)
またこの関数は、何度も再利用することができます。
console.log(getDice());
console.log(getDice());
console.log(getDice());
console.log(getDice());
console.log(getDice());
関数の定義を確認しよう
関数は、次のような記述で定義することができます。
function 関数名(パラメータ): 戻り値の型 {
関数の処理
return 戻り値
}
まず「function」という記述に続いて、関数に名前をつけます。これが、呼び出すときの名前になるため、他で定義されている関数名と別の名前で名前をつけましょう。「パラメータ」については次のレッスンで紹介します。
関数の中では、これまでと同様にプログラムの処理を含めることができます。
戻り値
関数の中で、処理の最後に「return」という記述があります。
これは関数の「戻り値」といい、関数で処理をした結果を呼び出した側に戻すことができます。これにより、例えば次のような記述ができます。
console.log(getDice());
この場合、console.logのパラメータとして「getDice」という関数の「戻り値」を指定しています。そして、この「getDice」は戻り値としてサイコロを振った結果の値を指定しているため、これによって画面に1から6の数字が表示されるというわけです。
戻り値の型は、関数名の隣に記述します。
function getDice(): number {
戻り値のない関数
関数の内容によっては、戻り値が存在しない関数というものあり得ます。例えば、次のプログラムは「こんにちは」と画面に表示するだけの関数です。
function sayHello(): void {
console.log("こんにちは");
}
sayHello();
これでも関数としては成り立ちます。画面に「こんにちは」と表示されます。
この場合、戻り値がないので「return」という記述は省略することができます。また、戻り値の型もないため「型がない」ということを示す「void」という型を使います。
ただし、実際には戻り値がない関数というのはまれです。例えば上記のような関数でも「正常に出力できたかどうか」をブーリアン型で戻したりすることの方が多いでしょう。
function sayHello(): boolean {
console.log("こんにちは");
return true;
}
sayHello();
戻り値は、特に必要がなければ受け取らないという事もできます。