JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの関数定義とは?基本構文と書き方を実例で解説

JavaScriptにおける関数定義は、基本的に以下の要素で構成されます。

  • functionキーワード:関数であることを示す予約語
  • 関数名:呼び出し時に使用する識別子
  • 引数(パラメータ):括弧内に記述する入力値
  • 波括弧 { }:実行されるJavaScriptの処理(ステートメント)を囲むブロック

関数定義の2つの主な書き方

JavaScriptでは、大きく分けて「関数宣言」「関数式」という2つの方法で関数を定義できます。それぞれの特徴は次のとおりです。

1. 関数宣言(function宣言)

function helloWorld() {
  alert("HELLO WORLD");
}

functionキーワードの後に直接関数名を記述する伝統的な書き方です。宣言より前に呼び出しても動作する「巻き上げ(ホイスティング)」の対象になります。

2. 関数式(無名関数の代入)

let testFunction = function () {
  alert("TEST FUNCTION");
};

functionキーワードで作成した関数を変数に代入する形式です。この場合、変数への代入が完了してからでないと関数を呼び出せません。

サンプルコード

以下は、両方の定義方法を使い、ボタンクリック時に関数の中身(定義内容)を画面に表示するデモです。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .sample {
        font-size: 18px;
        font-weight: 500;
    }
</style>
</head>
<body>
<h1>JavaScript Function Definitions</h1>
<div class="sample"></div>
<button class="Btn">CLICK HERE</button>
<h3>Click on the above buttons to see the function definitions</h3>
<script>
    let sampleEle = document.querySelector(".sample");
    function helloWorld() {
        alert("HELLO WORLD");
    }
    let testFunction = function () {
        alert("TEST FUNCTION");
    };
    document.querySelector(".Btn").addEventListener("click", () => {
        sampleEle.innerHTML = helloWorld + "<br>" + testFunction;
    });
</script>
</body>
</html>

実行結果

ページを表示すると、次のような画面になります。

JavaScriptの関数定義とは?基本構文と書き方を実例で解説

「CLICK HERE」ボタンをクリックすると、各関数の定義内容が文字列として表示されます。関数名を文字列化すると、そのソースコード自体が出力されるため、定義方法の違いを確認できます。

JavaScriptの関数定義とは?基本構文と書き方を実例で解説

まとめ

関数定義は「functionキーワード+関数名+引数+波括弧」という基本構造を持ちます。関数宣言は手軽で巻き上げの恩恵を受けられる一方、関数式は変数に代入することで柔軟な扱いが可能になります。用途に応じて使い分けることで、可読性と保守性の高いコードを書くことができます。

  1. JavaScriptの関数プロトタイプとは?仕組みと使い方を解説

    JavaScriptで作成されたすべての関数には、JavaScriptエンジンによって自動的にprototypeプロパティが追加されます。このprototypeプロパティはオブジェクトであり、デフォルトではconstructorプロパティを含んでいます。関数のプロトタイプには、以下のようにしてアクセスできます。functionName.prototypeコンストラクタ関数を使ってオブジェクトを生成する場合、このprototypeプロパティを活用することで、同じコンストラクタから作成された複数のオブジェクト間でメソッドやプロパティを効率的に共有することができます。これにより、各インスタンスごとに

  2. JavaScriptでのメソッド借用:call()・apply()・bind()の使い方を解説

    JavaScriptでは、call()、apply()、bind()という3つのメソッドを使うことで、あるオブジェクトが持つメソッドを別のオブジェクトが「借用」できます。これは、本来そのメソッドを持たないオブジェクトに対して、thisの参照先を差し替えてメソッドを実行できる便利なテクニックです。 3つのメソッドの違い call():引数をカンマ区切りで個別に渡し、即座に関数を実行します。 apply():引数を配列(または配列風オブジェクト)として渡し、即座に関数を実行します。 bind():thisを固定した新しい関数を返すだけで、即座には実行されません。返された関数は後から好きなタイミン