JavaScript は関数を定義するためにキーワード function を使用します。
関数は宣言によって定義することも、式として定義することもできます。
関数宣言
前のチュートリアルでは、関数宣言の構文を学習しました:
function functionName(parameters) {
実行されたコード
}
関数宣言の後、すぐには実行されません。必要なときに呼び出されます。
例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>本例调用的函数会执行一个计算,然后返回结果:</p> <p id="demo"></p> <script> function myFunction(a,b){ return a*b; } document.getElementById("demo").innerHTML=myFunction(4,3); </script> </body> </html>
プログラムを実行して試してください
ヒント: 関数宣言は実行可能な JavaScript ステートメントを区切るために使用されます。関数宣言は実行可能なステートメントではないため、セミコロンで終わりません。 。
関数式
JavaScript 関数は式によって定義できます。
関数式を変数に格納できます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>函数可以存储在变量中:</p> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x; </script> </body> </html>
プログラムを実行して試してください
関数式を変数に格納した後、変数を関数として使用することもできます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>函数存储在变量后,变量可作为函数使用:</p> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x(4, 3); </script> </body> </html>
プログラムを実行して試してくださいそれ
上記の関数は実際には匿名関数(関数には名前がありません)です。
関数は変数に格納され、通常は変数名を通じて呼び出されます。
ヒント: 上記の関数は実行ステートメントであるため、セミコロンで終わります。
Function() コンストラクター
上の例では、関数がキーワード function を通じて定義されていることを学びました。
関数は、組み込みの JavaScript 関数コンストラクター (Function()) を通じて定義することもできます。
例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>JavaScrip 内置构造函数。</p> <p id="demo"></p> <script> var myFunction = new Function("a", "b", "return a * b"); document.getElementById("demo").innerHTML = myFunction(4, 3); </script> </body> </html>
プログラムを実行して試してみましょう
ヒント: JavaScript では、多くの場合、new キーワードの使用を避ける必要があります。
実際には、コンストラクターを使用する必要はありません。上記の例は次のように記述できます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> var myFunction = function (a, b) {return a * b} document.getElementById("demo").innerHTML = myFunction(4, 3); </script> </body> </html>
プログラムを実行して試してください
関数ホイスティング(巻き上げ)
前回のチュートリアルで、「ホイスティング(巻き上げ)」についてはすでに学習しました。
ホイスティングは、現在のスコープを前面にホイストする JavaScript のデフォルトの動作です。
ホイスティングは変数宣言と関数宣言に適用されます。
したがって、関数は宣言される前に呼び出すことができます:
myFunction(5);
function myFunction(y) {
Return y * y;
}
表現。
自己呼び出し関数
関数式は「自己呼び出し」できます。
自己呼び出し式は自動的に呼び出されます。
式の後に()が続くと自動的に呼び出されます。
宣言された関数を自分で呼び出すことはできません。
括弧を追加して関数式であることを示します:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>函数可以自动调用:</p> <p id="demo"></p> <script> (function () { document.getElementById("demo").innerHTML = "Hello! 我是自己调用的"; })(); </script> </body> </html>
プログラムを実行して試してみましょう
上記の関数は、実際には匿名の自己呼び出し関数 (関数名なし) です。
関数を値として使用できます
JavaScript 関数を値として使用できます:
Example
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>函数可作为一个值:</p> <p>x = myFunction(4,3) 或 x = 12</p> <p>两种情况下,x 的值都为 12。</p> <p id="demo"></p> <script> function myFunction(a, b) { return a * b; } var x = myFunction(4, 3); document.getElementById("demo").innerHTML = x; </script> </body> </html>
プログラムを実行して試してみる
JavaScript 関数できる式として使用できます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>函数可作为一个表达式使用。</p> <p id="demo"></p> <script> function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2; document.getElementById("demo").innerHTML = x; </script> </body> </html>
プログラムを実行して試してください
関数はオブジェクトです
JavaScriptでtypeof演算子を使用して関数の型を決定すると、「function」が返されます。
しかし、JavaScript 関数はオブジェクトとしてより正確に記述されます。
JavaScript 関数にはプロパティとメソッドがあります。
arguments.length プロパティは、関数呼び出し中に受け取ったパラメータの数を返します:
インスタンス
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p> arguments.length 属性返回函数接收到参数的个数:</p> <p id="demo"></p> <script> function myFunction(a, b) { return arguments.length; } document.getElementById("demo").innerHTML = myFunction(4, 3); </script> </body> </html>
プログラムを実行して試してください
toString() メソッドは関数を文字列として返します:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p> toString() 将函数作为一个字符串返回:</p> <p id="demo"></p> <script> function myFunction(a, b) { return a * b; } document.getElementById("demo").innerHTML = myFunction.toString(); </script> </body> </html>
プログラムを実行して試してみてください
ヒント: オブジェクトの属性として定義された関数は、オブジェクト メソッドと呼ばれ、その関数が新しいオブジェクトの作成に使用される場合、その関数はオブジェクトのコンストラクターと呼ばれます。 。