前回はwhile文について、記載してみました。
今回は関数について書いています。関数は同じような処理を、ひとつにまとめて定義できる機能です。
こちらでは関数の概念を学んだ後に、実際にjavascriptでのコードを見て、関数の使い方を理解していきます。
それぞれのプログラミング言語で、使用方法が少し違ったりするので、本記事では概念やイメージを掴んでもらえると良いかと思っています。
それでは、関数について確認していきましょう。
関数とは?
関数について
関数はプログラムを効率的に処理するため、同じような処理をひとつにまとめて定義できる機能になります。
関数に何かの値を渡して(もしくは渡さずに)呼び出すと処理をしてもらうことができます。
関数は内部的な処理内容は気にせずに使用することができます。
関数の定義方法は言語によって様々です。function
を使ったり、func
と略したりすることもあります。
実際の構文としては下記のようになります。javascriptでの定義です。
function addition(x, y) {
return x + y;
}
ここでは、addition
という名前の関数を定義しました。
xとyを渡すと、xとyを足した結果を返してくれる関数です。
関数に渡す値を引数
、返す値を返り値
と言ったりします。
呼び出す側は内部の処理を気にせずに使うことができます。
実際にaddition
を使う場合は、呼び出し元ではこのように書きます。
let total = addition(10, 23);
console.log(total);
addition
関数に”10″と”23″を渡して、結果をtotal
で受け取っています。
console.logはjavascriptで値を出力してくれる関数です。
結果は”33″が出力されます。
このように、なんらかの引数を渡して、処理をしてくれるものが関数です。
自分で定義することもありますし、言語に最初から実装されている標準関数も存在します。
関数には値を返して、関数から返した値をメインの処理で受け取って、後続の処理で使用することができます。
関数は引数なしでも定義できますし、関数は値を返さなくてもいいです。
ざっくりと概念を説明しましたが、わかりましたか?
引き続きコードを見て確認していきましょう。
関数を使用したコードを見てみよう
javascriptのコードで、引き続き関数の使い方を見てみましょう。
javascriptではconsole.logに値を渡すと、値を出力してくれます。
内部の処理よりも関数の引数や呼び出し方に注目してみてください。
引数を渡して値を返す関数
関数には変数以外にも値を渡すことができます。
下記は配列を渡すと、関数の中で最後の要素を取り出して、返してくれる関数です。
function lastElement(values) {
const lastIndex = values.length - 1;
return values[lastIndex];
}
関数はvalues
を受け取って、内部で配列の最後の値を返すようにしています。
呼び出すときは、下記のように引数を渡して呼びます。
const fruits = ["apple", "grape", "lemon"];
const lastFruit = lastElement(fruits);
console.log(lastFruit); // 結果は"lemon"が出力される
結果として、”lemon”が出力されます。
値を返さない関数
値を返さない関数も定義できます。
下記は引数として回数を渡すと、渡した回数分”Hello”を出力する関数です。
function showHello(count){
for (let i = 0; i < count; i++) {
console.log("Hello");
}
}
関数はcount
を受け取って、内部でfor
文を使用して、”Hello”を出力しています。
呼び出すときは、下記のように呼ぶだけです。
showHello(3); // 結果は3回"Hello"と出力される
showHello(5); // 結果は5回"Hello"と出力される
showHello(8); // 結果は8回"Hello"と出力される
結果として渡された回数分”Hello”が出力されます。
引数のない関数
引数を書いていない場合は、引数なしで使用することができます。
下記は呼び出すと、現在の時間を「xx時xx分」の形で返してくれる関数です。
function nowTime() {
const date = new Date();
const hour = date.getHours();
const minutes = date.getMinutes();
return hour + "時" + minutes + "分";
}
引数はなく、内部ではDate
オブジェクトから時間を取得して、文字列を作って返しています。
下記のように引数を渡さずに呼び出すことが可能です。
let time = nowTime();
console.log(time); // 結果:現在時刻がxx時xx分の形で返ってくる
結果は「13時20分」など、現在時刻が返ってきて出力されます。
おわりに
今回はプログラミングで使用される関数について見ていきました。
関数のイメージは掴んでいただけましたでしょうか。
同じような処理を何回もやるような場合は、関数化して何度も呼び出すようにしたほうがいいです。
コードが見やすくなりますし、効率的にプログラムを実装できます。
作成した自作関数やメイン処理のコードが長いような場合も、別に関数化して処理を分けたほうがコードの見通しが良くなります。
コメント