JavaScriptで関数を定義する3つの方法

1. function 命令で定義する

関数を直接定義する。

2. Functionコンストラクタ経由で定義する

「Functionコンストラクタでは、引数や関数本体を文字列として定義できる」というメリットがあるが、それ以外で特にFunctionコンストラクタ経由で定義するメリットはないので、あまり使わない。

3. 関数リテラル表現で定義する

名前のない関数を定義した上で、変数に格納する。

関数が登録されるタイミング

例1

1行目の時点で、まだrectangle関数は宣言されていないが、正しくrectangle関数が実行されて、アラートも表示される。

これはfunction命令はコードをコンパイルするときに、関数を登録しているので、rectangle関数をどこからでも呼び出すことができるから。

例2

関数リテラルFunctionコンストラクタは関数が代入された時に評価されるので、上のように書くとundefinedとなる。