English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
関数は、コードブロックを定義し、それに名前を付け、必要に応じて繰り返し実行することができます。
functionキーワードを使用して関数を定義するか、()演算子を使用して関数を実行することができます。
このチュートリアルの前半で、以下の语法を使用することを学びました:宣言関数:
function nameOfFunction(parameters) { // 実行する文 }
宣言された関数はすぐに実行されません。宣言された関数は、関数の名前を指定し、関数が呼び出されたときの操作を指定するだけです。
function greet() {}} document.write("Hello, World!"); }テストを見て‹/›
上記の例では、名前がgreetの関数を宣言(定義)しました。この関数は「Hello, World!」というメッセージを出力します。この機能を呼び出すために()演算子を使用できます。例えばgreet()。
JavaScriptでは、関数を変数に割り当て、その変数を関数として使用することができます。これは関数式。
//関数表現は変数に格納できます var sum = function(a, b) { return a + b; ); // この変数は関数として使用できます var x = sum(100, 8);テストを見て‹/›
上記の関数は実際には以下のものです:匿名関数(名前のない関数)。
変数に格納された関数には関数名が必要ありません。常に変数名を使用してそれらを呼び出します。
上記の関数はセミコロンで終わっています。それは実行可能な文の一部です。
このチュートリアルの前半で、あなたは以下のことを学びました:JavaScript昇格。
昇格は、JavaScriptが宣言を現在のスコープの先頭に移動するデフォルトの動作です。
したがって、JavaScript関数を宣言する前にそれを呼び出すことができます:
// 声明前调用函数 greet(); function greet() {}} document.getElementById("output").innerHTML = "Hello World"; }テストを見て‹/›
表現で定義された関数は昇格されません。
関数表現を「自発的」にすることができます。
自関数は、定義後すぐに実行されるJavaScriptの関数です。
自発的に呼び出される(起動される)自関数表現、またはIIFE(即時呼び出し関数表現)としても呼ばれます。
関数表現の後ろに()がついている場合、関数表現は自動的に実行されます。
(function () { // 実行する文 })();テストを見て‹/›
IIFE(即時呼び出し関数表現)に変数を割り当てることで、関数の定義ではなく関数の返り値を保存します:
let result = (function () { let name = "Seagull"; return name; })(); //出力を即座に作成 result; // "Seagull"テストを見て‹/›
以下の例では、IIFE(即時呼び出し関数表現)にパラメータを渡す方法を示します:
(function (x, y) { document.getElementById("output").innerHTML = x + y; })(5, 10);テストを見て‹/›
コールバック関数は、他の関数に引数として渡され、外部関数の中でそれを使用して特定の手順や操作を完了する関数です。
function greet(name) { alert("Hello " + name); } function processInput(callback) { let name = prompt("Please enter your name:"); callback(name); } // Passing greet function into processInput function as an argument processInput(greet);テストを見て‹/›
上記の例は同期コールバックであり、すぐに実行されます。
しかし、コールバックは通常、非同期操作が完了した後にコードを実行するために使用されます。
再帰は、結果を得るまで関数を自身を呼び出す反復操作の技術です。
以下の例では、数の階乗を再帰的に取得する方法を示します:
var factorial = function(number) { if (number <= 0) { return 1; } else { return (number * factorial(number - 1)); } ); document.getElementById("output").innerHTML = factorial(5);テストを見て‹/›
まで、functionキーワードを使用して関数を定義する方法について紹介しました。
しかし、ECMAScript 6から始め、更新され、より簡潔な方法として、アロー関数の関数。
よく知られているように、アロー関数等号の後ろに大于号を使って表現します:=>。
//関数式 var sum = function(x, y) { return x + y; } // アロー関数 const sum = (x, y) => x + y;テストを見て‹/›
アロー関数には自分自身のthisがありません。したがって、それらはオブジェクトメソッド。
アロー関数は昇格されません。それらを定義する前に、その後、再び使用するそれら。
constを使用することは、varを使用するよりも安全です。なぜなら、関数式は常に定数であるからです。
関数が単一のステートメントである場合のみ、return キーワードと大括号を省略できます。したがって、常にそれらを使用することは良い習慣です。
関数が単一のステートメントである場合のみ、return キーワードと大括号を省略できます。したがって、常にそれらを使用することは良い習慣です。
const sum = (x, y) => { return x + y };テストを見て‹/›