JavaScriptの関数

JavaScript 関数は、特定のタスクを実行するコードブロックとして設計されています。

JavaScript 関数は、何かのコードがそれを呼び出したときに実行されます。

function myFunction(p1, p2) {
    return p1 * p2;              // この関数は p1 と p2 の積を返します
}

実際に試してみてください

JavaScript 関数の構文

JavaScript 関数は、 function キーワードで定義され、その後関数名および括弧 ()。

関数名は、アルファベット、数字、アンダースコア、およびドル記号(変数名のルールと同じ)を含むことができます。

丸括号は、カンマで区切られた引数を含むことができます:

(引数 1, 引数 2, ...)

関数が実行するコードは花括号内に配置されます:{}

function name(引数 1, 引数 2, 引数 3) {
    実行するコード
}

関数引数(Function parameters)関数定義に記載されている名前です。

関数引数(Function arguments)関数を呼び出したときに関数が受け取る実際の

関数内では、引数はローカル変数です。

他のプログラミング言語では、関数はプログラム(手順)またはサブプログラム(サブルーチン)に近いです。

関数呼び出し

関数内のコードは、他のコードがその関数を呼び出したときに実行されます:

  • イベントが発生したとき(ユーザーがボタンをクリックしたとき)
  • JavaScriptコードが呼び出された場合
  • 自動的(自呼び出し)

このチュートリアルでは、関数呼び出しに関するより多くの知識を学びます。

関数が戻ります

JavaScriptが return 文に到達すると、関数は実行を停止します。

関数が特定の文で呼び出された場合、JavaScriptはその文の後に実行コードを「戻ります」。

関数は通常、戻り値。この戻り値は呼び出し元に返されます:

二つの数の積を計算し、結果を返します:

var x = myFunction(7, 8);        // 関数を呼び出し、戻り値がxに割り当てられます
function myFunction(a, b) {
    return a * b;                // 関数はaとbの積を返します
}

xの結果は以下の通りです:

56

実際に試してみてください

関数を使う理由は何ですか?

コードの再利用ができます:一度コードを定義すれば、複数回使用できます。

異なるパラメータを複数回同じ関数に渡すことで、異なる結果を生成できます。

華氏度を摂氏度に変換します:

function toCelsius(fahrenheit) {
    return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = toCelsius(77);

実際に試してみてください

()演算子で関数を呼び出します

上記の例を使用して、toCelsius 参照しているのは関数オブジェクトであり、 toCelsius() 参照しているのは関数結果です。

()がない関数にアクセスすると、関数定義が返されます:

function toCelsius(fahrenheit) {
    return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = toCelsius;

実際に試してみてください

変数値として使用される関数

関数の使用方法は変数と同じで、すべての種類の公式、割り当て、計算で使用されます。

関数の値を保存するために変数を使用します:

var x = toCelsius(77);
var text = "The temperature is " + x + " Celsius";

関数を変数値として直接使用できます:

var text = "The temperature is " + toCelsius(77) + " Celsius";

実際に試してみてください

このチュートリアルでは、関数に関するより多くの知識を学びます。

局部的変数

JavaScript関数内で宣言された変数は、関数の局部的変数

局部的変数は関数内でのみアクセスできます。

// この場所のコードでは carName を使用できません
function myFunction() {
    var carName = "Volvo";
    // この場所のコードでは carName を使用できます
}
// この場所のコードでは carName を使用できません

実際に試してみてください

ローカル変数は関数だけで認識されるため、異なる関数で同じ名前の変数を使用できます。

ローカル変数は関数の開始時に作成され、関数が完了すると削除されます。

参考書

さらに詳しい情報については JavaScriptの関数の知識について、JavaScript 高級チュートリアルの関連内容を読んでください:

ECMAScript 関数概要
このセクションでは、関数の概念を説明し、ECMAScript が関数を宣言し、呼び出し、値を返す方法を説明します。
ECMAScript arguments オブジェクト
このセクションでは、このオブジェクトの基本的な使用法を説明し、length 属性を使用して関数の引数の数を測定する方法と、関数のオーバーロードをシミュレートする方法を説明します。
ECMAScript Function オブジェクト(クラス)
このセクションでは、Function クラスを使用して関数を作成する方法を説明し、Function オブジェクトの属性とメソッドを紹介します。
ECMAScript 閉包(クロージャ)
このセクションでは、閉包(クロージャ)の概念を説明し、シンプルな例と少し複雑な例の両方を展示します。