English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 基礎チュートリアル

JavaScript オブジェクト

JavaScript 関数

JS HTML DOM

JS ブラウザBOM

AJAX 基礎チュートリアル

JavaScript 参考マニュアル

JavaScriptの関数(Function)

JavaScript関数は、アクションや特定のタスクを実行するためのコードブロックです。

関数はプログラマーによって定義された可重用のカスタムコードであり、プログラムをよりモジュール化し効率化することができます。

JavaScript関数が「何か」によって呼び出されたときに、その関数が実行されます。

関数の定義

関数定義(もしくは関数宣言)functionキーワードを使用して、関数の順序は以下の通りです:

  • 関数名

  • 関数の引数リストは、小括弧( )で括られ、カンマで区切られています。

  • 関数を定義するための文は、大括弧{ }で括られています。

以下はJavaScriptの関数の構文です:

function nameOfFunction(parameter1, parameter2, ..., parameterN) {
 // 実行するコード
 }

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

最初の例では、ドキュメントに挨拶を印刷するために関数宣言を行います。

function greet() {
   document.write("Hello, World!");
}
テストをしてみる‹/›

関数呼び出し

関数の定義は実行されません。関数の定義は、関数を名前付け、関数が呼び出されたときの操作を指定するだけです。

関数名の後に括弧()を付けると関数を呼び出すことができます。

//greet()関数を定義します
function greet() {
   document.write("Hello, World!");
}
//既に定義されたgreet()関数を呼び出します
greet();
テストをしてみる‹/›

今、私たちはgreet()コードは関数内に含まれており、必要に応じて繰り返し使用できます。

// greet()関数を定義します
function greet() {
   document.write("Hello, World!");
}
// 既に定義されたgreet()関数を複数回呼び出します
greet();
greet();
greet();
テストをしてみる‹/›

関数を呼び出すための他の方法もあります:

  • イベントが発生したとき(ユーザーがボタンをクリックしたとき)

  • JavaScriptコードから呼び出します

  • 自動(自己実行)

このチュートリアルの後半では、関数呼び出しに関する多くの情報を学びます。

関数の引数

実行時に入力値を受け取る関数を定義する際には、引数を指定できます。

関数の引数は関数定義の括弧()にリストされています。

//関数の定義
function greet(name) {
   document.write("Hello, ") + name);
}
//greet関数を「Vishal」引数で呼び出します
greet("Vishal");
テストをしてみる‹/›

必要に応じて、任意の数の引数を定義できます。

//関数の定義
function add(num1, num2, num3) {
   var total = num1 + num2 + num3;
   document.write(total);
}
 
// 関数を呼び出します
add(5, 20, 10); // 出力: 35
add(-5, 8, 7);  // 出力: 10
テストをしてみる‹/›

しかし、関数呼び出し時に指定する各引数に対して、関数に対応する引数を渡さないと、その値が不確定になります。

//関数の定義
function showFullname(fName, lName) {
   document.write(fName + " " + lName);
}
 
// 関数を呼び出します
showFullname("Kavy", "Mark"); // 出力: Kavy Mark
showFullname("John"); // 出力: John undefined
テストをしてみる‹/›

引数の動作は関数内の占位符変数に似ており、実行時に関数に提供される値(引数と呼ばれる)で置き換わります。

関数内では、引数はローカル変数として表現されます。

このチュートリアルの後半で、関数引数に関する詳細な情報を学びます。

返される値

JavaScript関数はreturn文を使用して、関数を呼び出したスクリプトに値を返すことができます。

返される値は、配列やオブジェクトを含むどんな型でもできます。

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

以下の関数は「数字」と呼ばれる引数を受け取り、その引数の自身と乗算された値(すなわち数字)を返します:

//関数の定義
function square(number) {
   return number * number;
}
//関数を呼び出し、返り値がxに格納されます
var x = square(5);
テストをしてみる‹/›

関数は複数の値を返すことはできません。しかし、値の配列を返すことで似たような結果を得ることができます:

function makeArray() {
   var myArray = ["Apple", "Mango", "Banana", "Orange"];
   return myArray;
}
テストをしてみる‹/›

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

上記の例を使用して、関数squareオブジェクトを参照し、関数square()の結果を参照します。

()を使用しない場合、関数定義ではなく関数結果が返されます:

function square(number) {
   return number * number;
}
document.write(square(5));  // 出力 25
document.write(square); // 定義された関数を出力する
テストをしてみる‹/›

関数表現

上記の関数宣言は文法的には文ですが、関数の宣言としても使用できます。表現関数の作成

関数表現は変数に格納することができ、常に変数名を使用して呼び出すことができます。

このような関数は匿名の ; 名前は必須ではありません。例えば、square()関数は以下のように定義できます:

var square = function(number) { return number * number; };
var x = square(5); // x = 25
テストをしてみる‹/›

別の例:

var sum = function(a, b) {
return a + b;
};
var x = sum(100, 8);  // x = 108
テストをしてみる‹/›

上記の関数はセミコロンで終わりますが、それは実行可能なステートメントの一部です。

関数の範囲

関数内部に定義された変数は関数外部からアクセスできないため、それらは関数のローカル変数になります。

// このコードでは city を使用することはできません
function myFunc() {
   var city = "New Delhi";
  // このコードでは city を使用できます
}
// このコードでは city を使用することはできません
テストをしてみる‹/›

ローカル変数は関数内部でのみ使用できるため、同じ名前の変数が異なる関数内部で使用できます。

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