関数宣言文
function キーワードを使用し、その後にパラメータのセットと関数本体を続けます
function funcname([arg1 [,arg2 [...,argn]]]){ statement; }
funcname は宣言する関数名の識別子です。パラメーターのリストは、関数名の後にカンマで区切られて括弧で囲まれています。関数を呼び出すとき、これらの識別子は関数に渡される実際のパラメーターを参照します
[注] 関数ステートメントの中の中括弧は必須です。これは、関数が関数であっても、while ループや他のステートメントで使用されるステートメント ブロックとは異なります。本体にはステートメントが 1 つだけ含まれており、中括弧で囲む必要があります
function test()//SyntaxError: Unexpected end of input function test(){};//不报错 while(true);//不报错
ホイスト
スコープ ブログ シリーズの 3 番目の記事で、関数宣言のホイスティング (ホイスティング) について説明しました。関数名と関数本体の両方がホイストされます。
foo(); function foo(){ console.log(1);//1 }
上記のコードスニペットがコンソールで1を出力できるのは、以下に示すように、foo()関数の宣言が昇格されているためです:
function foo(){ console.log(1); } foo();
Duplicate
変数の重複宣言は役に立たないが、関数の重複宣言前の宣言(変数宣言でも関数宣言でも)を上書きします
//变量的重复声明无用var a = 1; var a; console.log(a);//1
//由于函数声明提升优先于变量声明提升,所以变量的声明无作用 var a; function a(){ console.log(1); } a();//1
//后面的函数声明会覆盖前面的函数声明 a();//2 function a(){ console.log(1); } function a(){ console.log(2); }
そのため、同じスコープ内での繰り返しの宣言は避けるべきです
削除
変数宣言と同様、関数宣言文で作成された変数も削除できません
function foo(){ console.log(1); } delete foo;//false console.log(foo());//1
以上がJavaScript関数の基本の関数宣言、昇格、複製、削除例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。