第 9 回 JavaScript の基本機能 関数を作る その1
JavaScript 初心者がカスタマイズに必須の知識をより学べるよう、チュートリアルの内容を充実させてリニューアルしました。
リニューアル後のチュートリアルは次のページを参照してください。
はじめよう JavaScript
これまでの回で、JavaScript の基本的な機能や for 文、 if 文について学んできました。
基本的には、これまでの回で学んできたことを組み合わせるだけで、さまざまなことができます。
今回は、処理の組み合わせをしやすくするための「関数」という機能について学んでいきます。
以下のリンク先で実際に入力しながら試してみてください。
https://jsfiddle.net/kintone/x27p59nu/1/
記述ミスなどでうまく動作しないときのために、下の方にサンプルの実行環境も用意していますので必要に応じて利用してください。
ここでの関数定義は function
キーワードを用いた書き方で紹介しています。
当サイトの API ドキュメントのサンプルや一部 Tips で使われているアロー関数 =>
については、
第10回 JavaScript の基本機能 関数を作る その2 で説明します。
関数(ファンクション)とは
関数とは、一連の処理をまとめるための JavaScript の基本的な構成要素のひとつです。
関数は
第2回 でも少しだけ話しましたが、 alert()
や、はじめようシリーズで毎回登場している console.log()
も関数なんです。
これは、組込み数と呼ばれるもので、最初から定義されているのでいつでも使える関数です。
逆に、最初から用意されてない関数はユーザー定義関数といいます。
今回はユーザー定義関数を中心に勉強してみましょう!
一度関数を定義すると、その後は何度でも関数を使うことができますので、同じ処理をさせたいときに役に立ちます。
まずは、実際に定義された関数とその使い方を見てみましょう。
税込み金額を計算するための関数の定義を例にあげてみます。
税込み金額を計算するための関数定義と関数の利用
|
|
サンプルの実行環境
https://jsfiddle.net/kintone/b4f382gk/13/
関数の書式
関数を定義するには以下のようにコードを書く必要があります。
|
|
関数名
関数名は、変数定義と同じように好きな名前をつけることができます。
他の関数や変数と重複しないネーミングにしましょう。
引数
引数(ひきすう)は、関数に渡す値です。
関数を定義するときは、変数を使って引数を表します。
前述の例 calcTaxIncludedPrice
関数では、 price
という引数が定義されています。
その後、 price * 1.08
という処理によって、渡した値を使って税込金額を計算できるのです。
引数を必要としない場合は省略できます。
処理内容
関数の処理内容を定義します。
return文
return
を使うことによって、関数の処理を終了し、処理結果を返すことができます。
返す値のことを「戻り値」といいます。
処理結果を返す必要がなければ省略できます。その場合は関数の最後の行まで処理がされます。
関数を使う
関数を使うには 関数名()
という風に宣言した関数名+括弧が必要です。
何かしらの値を渡したい場合は括弧内に値を入れます。
さらに、処理結果を受け取りたい時は変数に処理結果を格納できます。
|
|
関数の使い所
冒頭で述べたとおり、関数は処理をまとめるためだったり、再利用しやすくするために使うと効果的です。
たとえば、税込金額を求める関数 calcTaxIncludedPrice
を使わない場合、税率が変わるといろんな所を修正しなくてはいけなくなります。
関数なしの場合
|
|
関数ありの場合
関数にしている場合は、関数内部の 1.08
を 1.10
に修正するだけで済みます。
|
|
よく利用する処理はこのように関数などでまとめることが有効です。
練習
実際にいくつか他にも関数を作って試してみましょう。
三角形の面積を求める
三角形の面積を計算するための関数を作ってみます。
三角形は 底辺×高さ÷2
で求められますので、それを関数で計算させます。
最後に、計算結果を return
で返却します。
|
|
サンプルの実行環境: https://jsfiddle.net/kintone/8nxegpj3/3/
3つの値を合計しその結果を返す関数
3 つの値を渡される必要がありますので、引数を 3 つ用意する必要があります。
|
|
サンプルの実行環境
https://jsfiddle.net/kintone/Lqwd9ur2/3/
まとめ
このように、関数を使いこなせるようになれば、同じようなコードを減らしつつ、変更に強いプログラムを書くことができます。
次回は if 文や for 文を組み合わせてより実用的な関数を作ります。