English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 を使用することはできませんテストをしてみる‹/›
ローカル変数は関数内部でのみ使用できるため、同じ名前の変数が異なる関数内部で使用できます。
関数が開始されたときにローカル変数が作成され、関数が完了するとローカル変数が削除されます。