解 説

関数について

一度定義すると何度も呼び出しが行えて、なんらかの処理をしたり、その結果を返す仕組みを関数といいます。関数にはfunction命令で定義するものと関数リテラルで定義する方法があります。さらにコンストラクタという特殊な関数もあります。コンストラクタはオブジェクト指向のところで詳しく学習していくことにします。

関数の定義と呼び出し

仮引数は必要なだけカンマ,で区切って指定します。関数を定義する方法は下記のとおりです。return文は戻り値がある場合に使用します。戻り値は関数の処理の結果を呼び出し元に返す値のことをいいます。また戻り値が無い関数もあります。その場合はreturn文は省略します。return文は途中で改行すると思わぬ挙動になる場合がありますので、return のあとに続く値や式は改行しないで続けて書くようにしましょう。改行するとreturn; ~と解釈されてしまうようです。

関数の例

スクリプト実行結果です。

関数リテラルについて

関数リテラルは別名「匿名関数」とか「無名関数」と呼ばれることもあります。function文は文法上は文で関数名が必須ですが、関数リテラルは文法上は式であり、関数名は不要となるのです。

関数リテラルの例

スクリプト実行結果です。

function命令による関数定義は同じscriptタグ内であればどこからでも呼び出すことができます。一方関数リテラルは呼び出し元のスクリプトよりも前にリテラル関数を定義しておく必要があります。以下のコードはエラーになります。