関数の作り方 — 処理に名前を付けて使い回す
同じ処理を何度も書いている、という状態を解消するのが関数です。作り方と、「引数」「戻り値」という2つの言葉を、実物で理解します。
関数は「処理のまとまりに名前を付けたもの」です。一度作れば、何度でも呼び出せます。料理でいえばレシピを書いておくようなものです。
いちばん単純な関数
script.js
// 作る
function sayHello() {
console.log("こんにちは");
}
// 呼び出す
sayHello();作っただけでは何も起きません。名前にかっこを付けて呼び出したときに、中の処理が動きます。ここは最初につまずくところなので、「作る」と「呼ぶ」は別、と覚えてください。
引数 … 外から値を渡す
かっこの中に名前を書いておくと、呼び出すときに値を渡せます。これを引数と呼びます。同じ処理を、違う値に対して使い回せるようになります。
引数を受け取る
function sayHello(name) {
console.log(name + "さん、こんにちは");
}
sayHello("ふじわら"); // ふじわらさん、こんにちは
sayHello("たなか"); // たなかさん、こんにちは戻り値 … 結果を返す
return を書くと、計算結果を呼び出し元に返せます。返された値は、変数に入れたり、そのまま使ったりできます。
税率や商品の値段を変えてみてください。関数はひとつだけで、何度でも使い回せます。
return が実行された時点で、関数はそこで終わります。return より後ろに書いた処理は動きません。これを利用して、条件に合わないときに早めに抜ける書き方もよく使われます。
アロー関数という短い書き方
同じ意味の2つの書き方
// function を使う書き方
function add(a, b) {
return a + b;
}
// アロー関数
const add = (a, b) => {
return a + b;
};最近のコードではアロー関数をよく見かけます。意味はほぼ同じなので、読めれば十分です。書くときはどちらでも構いません。慣れないうちは function のほうが分かりやすいと思います。
関数に切り出す目安
- 同じ処理を2回以上書いている
- 1つの処理が長くなって、何をしているか分かりにくい
- 処理に名前を付けたら分かりやすくなりそう
特に3つ目が大事です。10行のコードに calculateTotal という名前を付けるだけで、読む人は中身を読まずに済みます。関数は、コードに見出しを付ける行為でもあります。
名前の付け方
関数は「何かをするもの」なので、動詞から始めるのが定番です。getUserName、showMenu、calculateTotal のように書くと、呼び出す側を読んだだけで動きが想像できます。