JavaScript関數(shù)定義
関數(shù)を定義する
JavaScript で関數(shù)を定義する方法は次のとおりです:
function abs(x) {
if (x >= 0) { return x;
} else { return -x;
}
}
上記の abs() 関數(shù)の定義は次のとおりです:
function は、これが関數(shù)定義であることを示します。abs は関數(shù)の名前です (x) 関數(shù)のパラメーターは括弧內(nèi)にリストされています。 、複數(shù)のパラメータは、; で區(qū)切られます。{ ... } の間のコードは関數(shù)本體であり、複數(shù)のステートメントを含めることも、ステートメントを含めないこともできます。
関數(shù)本體內(nèi)のステートメントが実行される場合、returnが実行されると、関數(shù)が実行され、結(jié)果が返されることに注意してください。したがって、條件判定やループ処理により、関數(shù)內(nèi)に非常に複雑なロジックを?qū)g裝することができます。
return文がない場合、関數(shù)実行後に結(jié)果が返されますが、結(jié)果は不定となります。
JavaScript関數(shù)もオブジェクトであるため、上で定義したabs()関數(shù)は実際には関數(shù)オブジェクトであり、関數(shù)名absは関數(shù)を指す変數(shù)とみなすことができます。
それで、関數(shù)を定義する 2 番目の方法は次のとおりです:
var abs = function (x) {
if (x >= 0) { return x;
} else { return -x;
}
このように、 function (x) { ... } は関數(shù)名を持たない匿名関數(shù)です。ただし、この無名関數(shù)は変數(shù) abs に代入されているため、変數(shù) abs を介して関數(shù)を呼び出すことができます。
上記の 2 つの定義は完全に同等です。2 番目のメソッドでは、完全な構(gòu)文に従って関數(shù)本體の最後に ; を追加して、代入ステートメントの終わりを示す必要があることに注意してください。
ステートメント}文法解釈
関數(shù)を使用するキーワード定義 関數(shù)
function キーワードの後に??はスペースが続き、その後に関數(shù)名が続きます。関數(shù)名の後には arg0 と arg1 が関數(shù)のパラメータを表します。パラメータは「,」で區(qū)切られます。記號。パラメータの數(shù)は 0 ~ 25 です (0 はパラメータがないことを意味します)。パラメータがない場合、()括弧は省略できません。25を超えるパラメータはJavaScriptで無視されます
{}は関數(shù)本體であり、関數(shù)で実裝される関數(shù)文が含まれます
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> <script type="text/javascript"> function hello(name){ document.write((name + ",你好!")); } </script> </head> <body> <input type="button" onclick="hello('小明')" value="確定"/> </body> </html>関數(shù)式
JavaScript 関數(shù)は式を介して定義できます。 関數(shù)式は変數(shù)に保存できます:
var x = function (a, b) {return a * b};
関數(shù)式を変數(shù)に格納した後、変數(shù)は関數(shù)としても使用できます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(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>
機能のプロモーション (ホイスティング)
前回のチュートリアルで、「ホイスティング」についてはすでに學(xué)習(xí)しました。
ホイスティングは、現(xiàn)在のスコープを前面にホイストする JavaScript のデフォルトの動作です。
ホイスティングは変數(shù)宣言と関數(shù)宣言に適用されます。
したがって、関數(shù)は宣言される前に呼び出すことができます:
myFunction(5);
function myFunction(y) {
Return y * y;
}
表現(xiàn)。
arguments
JavaScript には無料のキーワード引數(shù)もあります。これは関數(shù)內(nèi)でのみ機能し、常に現(xiàn)在の関數(shù)の呼び出し元によって渡されるすべてのパラメーターを指します。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(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>
関數(shù)はオブジェクトです
JavaScriptでtypeof演算子を使用して関數(shù)の型を決定すると、「function」が返されます。
しかし、JavaScript 関數(shù)はオブジェクトとしてより正確に記述されます。
JavaScript 関數(shù)にはプロパティとメソッドがあります。
arguments.length プロパティは、関數(shù)呼び出し中に受け取ったパラメーターの數(shù)を返します:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(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>