JSの関数とは何ですか?

JavaScriptにおける関数とは?

関数は、JavaScript の基本的な構成要素のひとつです。 JavaScript の関数は、プロシージャに似ています。 — タスクを実行したり値を計算したりする一連の文ですが、プロシージャが関数として認められるためには、何らかの入力を受け取り、入力と出力の間に何らかの明白な関係がある出力を返す必要があります。

関数の定義

関数を定義するには、functionキーワード、関数名、括弧で囲まれた引数リスト、および中括弧で囲まれた関数本体を使用します。


function 関数名(引数1, 引数2, ...) {
  // 関数本体
}


function add(a, b) {
  return a + b;
}

この例では、addという名前の関数を定義しています。この関数は、2つの引数(ab)を取り、それらの合計を返します。

関数の呼び出し

関数を呼び出すには、関数名に括弧を付けて、引数を渡します。


let result = add(2, 3);
console.log(result); // 5

この例では、add関数を呼び出し、引数として23を渡しています。関数は、2つの引数の合計(5)を返し、それをresult変数に代入しています。

関数の種類

JavaScriptには、主に以下の3種類の関数が存在します。
種類 説明
関数宣言 functionキーワードを使用して定義された、名前を持つ関数です。
関数式 関数宣言を式として定義したものです。無名関数として定義されることもあります。
アロー関数 ES6で導入された、より簡潔な構文で関数を定義する方法です。

関数の利点

関数は、コードの再利用性とモジュール化を促進します。主な利点として、以下が挙げられます。 * **コードの再利用性:** 関数を定義することで、同じ処理を何度も記述する必要がなくなり、コードの再利用性を高めることができます。 * **モジュール化:** 関数を利用することで、プログラムをより小さく、管理しやすいモジュールに分割することができます。

参考資料

* 関数 - JavaScript | MDN

QA

Q1: 関数とメソッドの違いは何ですか?

A1: メソッドは、オブジェクトに属する関数のことです。つまり、オブジェクトの動作や処理を定義するために用いられます。一方、関数はオブジェクトに属さずに単独で定義され、様々な処理を実行するために使用されます。

Q2: JavaScriptでは、関数を引数として渡すことはできますか?

A2: はい、JavaScriptでは関数を第一級オブジェクトとして扱うため、関数を引数として他の関数に渡すことができます。これを「高階関数」と呼びます。

Q3: アロー関数と通常の関数宣言の違いは何ですか?

A3: アロー関数は、通常の関数宣言に比べて簡潔な構文で関数を定義できることが特徴です。また、アロー関数はthisの扱いが通常の関数宣言とは異なり、定義されたスコープのthisを束縛します。

その他の参考記事:JavaScript 関数呼び出し