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

伊谢尔伦
リリース: 2017-07-25 09:50:45
オリジナル
1675 人が閲覧しました

関数宣言文

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート