JavaScript関数定義
関数を定義する
JavaScript で関数を定義する方法は次のとおりです:
function abs(x) {
if (x >= 0) { return x;
} else { return -x;
}
}
上記の abs() 関数の定義は次のとおりです:
function は、これが関数定義であることを示します。abs は関数の名前です (x) 関数のパラメーターは括弧内にリストされています。 、複数のパラメータは、; で区切られます。{ ... } の間のコードは関数本体であり、複数のステートメントを含めることも、ステートメントを含めないこともできます。
関数本体内のステートメントが実行される場合、returnが実行されると、関数が実行され、結果が返されることに注意してください。したがって、条件判定やループ処理により、関数内に非常に複雑なロジックを実装することができます。
return文がない場合、関数実行後に結果が返されますが、結果は不定となります。
JavaScript関数もオブジェクトであるため、上で定義したabs()関数は実際には関数オブジェクトであり、関数名absは関数を指す変数とみなすことができます。
それで、関数を定義する 2 番目の方法は次のとおりです:
var abs = function (x) {
if (x >= 0) { return x;
} else { return -x;
}
このように、 function (x) { ... } は関数名を持たない匿名関数です。ただし、この無名関数は変数 abs に代入されているため、変数 abs を介して関数を呼び出すことができます。
上記の 2 つの定義は完全に同等です。2 番目のメソッドでは、完全な構文に従って関数本体の最後に ; を追加して、代入ステートメントの終わりを示す必要があることに注意してください。
ステートメント}文法解釈
関数を使用するキーワード定義 関数
function キーワードの後にはスペースが続き、その後に関数名が続きます。関数名の後には arg0 と arg1 が関数のパラメータを表します。パラメータは「,」で区切られます。記号。パラメータの数は 0 ~ 25 です (0 はパラメータがないことを意味します)。パラメータがない場合、()括弧は省略できません。25を超えるパラメータはJavaScriptで無視されます
{}は関数本体であり、関数で実装される関数文が含まれます
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function hello(name){ document.write((name + ",你好!")); } </script> </head> <body> <input type="button" onclick="hello('小明')" value="确定"/> </body> </html>関数式
JavaScript 関数は式を介して定義できます。 関数式は変数に保存できます:
var x = function (a, b) {return a * b};
関数式を変数に格納した後、変数は関数としても使用できます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x(6, 9); </script> </body> </html>
機能のプロモーション (ホイスティング)
前回のチュートリアルで、「ホイスティング」についてはすでに学習しました。
ホイスティングは、現在のスコープを前面にホイストする JavaScript のデフォルトの動作です。
ホイスティングは変数宣言と関数宣言に適用されます。
したがって、関数は宣言される前に呼び出すことができます:
myFunction(5);
function myFunction(y) {
Return y * y;
}
表現。
arguments
JavaScript には無料のキーワード引数もあります。これは関数内でのみ機能し、常に現在の関数の呼び出し元によって渡されるすべてのパラメーターを指します。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function foo(x) { alert(x); // 10 for (var i=0; i<arguments.length; i++) { alert(arguments[i]); // 10, 20, 30 } } foo(10, 20, 30); </script> </head> <body> </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 id="demo"></p> <script> function myFunction(a, b) { return arguments.length; } document.getElementById("demo").innerHTML = myFunction(4,7,3); </script> </body> </html>