ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript関数の基本の関数宣言、昇格、複製、削除例を詳しく解説

JavaScript関数の基本の関数宣言、昇格、複製、削除例を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-25 09:50:451618ブラウズ

関数宣言文

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。