この記事では、JavaScript の関数宣言と変数宣言の違いについて説明します。必要な方は参考にしてください。
今日、別の質問により、私と JS の基本との間でバトルが始まりました。まず、
var getName = function(){alert(1)}; function getName(){alert(2)}; getName();// 1
or
function getName(){alert(2)}; var getName = function(){alert(1)}; getName();// 1
宣言の順序を変更したのに、結果は依然として の形式で宣言されているのはなぜですか。 var
関数の値? var
形式声明的函数的值?
有人回答我说 "啊,变量提升呀...",我最开始的理解,就算变量提升,第一种情况提升之后,应该是这样啊:
var getName; getName = function(){alert(1)}; function getName(){alert(2)};
最后应该输出 2 才对啊(很理直气壮)。
殊不知不只有var
声明才会提前,以function fn(){}
誰かが私に答えて、「ああ、変数が増えた...」と言いました。 私の最初の理解は、たとえ変数が増えたとしても、最初の状況が増えた後は次のようになるはずです:
fn();//Uncaught TypeError: fn is not a function var fn = function(){console.log(1)};
var
宣言だけが拡張されるのではなく、function fn(){}
の形式で宣言された関数もスコープに拡張されます トップ、次に変数のプロモーション。
詳細については、次の例を参照してください。
fn();//2 var fn = function(){console.log(1)}; function fn(){console.log(2)}
rrreee
は、機能の改善がより積極的であることを示すのに十分です。
JavaScript変数宣言の例分析_JavaScriptスキル
🎜🎜JavaScriptグローバル変数宣言と利点と欠点の紹介🎜🎜🎜🎜以上がJavaScriptの関数宣言と変数宣言の違いの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。