検索

ホームページ  >  に質問  >  本文

javascript - 関数宣言と宣言された変数が同時に存在しますが、昇格のルールは何ですか?

変数の宣言がプロモートされることがわかっています:

リーリー

同時に、関数宣言も昇格されます:

リーリー

それでは、変数宣言と関数宣言の両方がある場合、どちらが上位レベルに昇格するのでしょうか?並べ替え方法は?例えば: ### リーリー ###そうですか?

リーリー

「知らないJAVASCRIPT」でこの文を見たので、少し混乱しました:

関数宣言と変数宣言が昇格されます。ただし、注目すべき詳細は、関数が最初にプロモートされ、次に変数がプロモートされることです。関数宣言は、通常の変数の前に巻き上げられます。

したがって、次のようにソートされます:
リーリー

並べ替えルールを解決してください。ありがとう!

高洛峰高洛峰2776日前594

全員に返信(3)返信します

  • 仅有的幸福

    仅有的幸福2017-05-18 10:57:55

    この「改善第一」というのは実は誤解です これは表面的なものです。仕様は順不同です (V8 の実装に興味がある場合は、ここを参照してください)。

    var 的提升是声明跟赋值分开,function 改善は全体の改善ですので、

    リーリー

    こうなります

    リーリー

    まずは機能が促進される効果があるということですね。

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-18 10:57:55

    まず内容は4つに分けることができます

    リーリー

    プロモーション後の並べ替え形式がどのようになるかを知りたいですか?
    現在の既知の条件は、変数宣言が変数代入の前に昇格されることですので、当面は内部順序に関係なく、変数宣言を最初の 2 桁に置くことができます:

    リーリー

    次に、宣言モジュールと代入モジュールの内部順序をそれぞれ決定しましょう。
    実験を行うために foo 関数を拡張したため、現在の順序は次のとおりです:

    リーリー

    なぜこのように変更したかは、実験中に理解できるので、心配しないでください。
    理解を容易にするため、実験は2回に分けて実施しました。
    最初に、変数宣言モジュールを試します。

    リーリー

    次に、変数割り当てモジュールを試します。

    リーリー

    実験してみましょう:

    リーリー

    実験結果に基づく、最終的なランキング結果は次のとおりです:

    リーリー

    返事
    0
  • 黄舟

    黄舟2017-05-18 10:57:55

    リーリー

    返事
    0
  • キャンセル返事