JavaScriptの関数宣言と変数宣言の違いの分析

不言
リリース: 2018-09-11 15:14:34
オリジナル
1469 人が閲覧しました

この記事では、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)};
ログイン後にコピー
The最終的な出力は 2 になるはずですよね (非常に自信があります)。

ご存知のとおり、var 宣言だけが拡張されるのではなく、function fn(){} の形式で宣言された関数もスコープに拡張されます

トップ、次に変数のプロモーション。
詳細については、次の例を参照してください。

fn();//2
var fn = function(){console.log(1)};
function fn(){console.log(2)}
ログイン後にコピー
but

rrreee
は、機能の改善がより積極的であることを示すのに十分です。


関連する推奨事項:

JavaScript変数宣言の例分析_JavaScriptスキル

🎜🎜JavaScriptグローバル変数宣言と利点と欠点の紹介🎜🎜🎜🎜

以上がJavaScriptの関数宣言と変数宣言の違いの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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