A390 関数宣言と呼び出し

関数内では呼び出し元からどのような値を受け取るのか、呼び出された時にどのような処理をするのか、そして呼び出し元にどのような値を返すのかについて記述していきます。今回は、JavaScript にて関数を定義する方法とその呼び出し方について紹介します。

関数宣言と呼び出し

function 関数名(引数) { 処理 }という形を用いて関数を定義します。また、関数を呼び出す際は、関数名(引数);という形を用いて関数を呼び出します。

JavaScript
function outPut() {
  console.log("出力!")
}
//outPut()関数の定義

outPut();
//outPut()関数の呼び出し

出力結果

JavaScript
出力
アロー関数と呼ばれる別の定義方法はこちらを参照

関数のスコープ

関数スコープ

スコープとは、ある変数や関数が特定の名前で参照される範囲のことを指します。functionの中に置かれた変数や関数は、その内部でしか変更、参照をすることはできません。

JavaScript
function funcA() {
  function funcB() {
    console.log("funcB");
  }
  funcB();
}

funcB();

出力結果

JavaScript
ReferenceError: funcB is not defined
// 関数FuncBは定義されておりません。

例題

以下コードの出力値はどれか

JavaScript
function hello() {
  console.log("Hello");
  function greeting() {
    console.log("こんにちは!");
  }
  greeting();
}

hello();
  1. ReferenceError: greeting is not defined
  2. Hello こんにちは!
  3. ReferenceError: hello is not defined
  4. こんにちは! Hello
回答

2. Hello こんにちは!
hello関数を実行し、”Hello”が出力され、greetingが実行され、”こんにちは”が出力されるため。

エンジニアからのアドバイス

関数は定義すると何度でも呼び出すことができるため、同じ処理を繰り返し行う場合には関数として定義しておき、必要な時に関数を呼び出すようにすることでプログラムが分かりやすくすっきりとさせることができます。重複したコードがあれば関数としてまとめましょう。

---