変数の宣言がプロモートされることがわかっています:
リーリー同時に、関数宣言も昇格されます:
リーリーそれでは、変数宣言と関数宣言の両方がある場合、どちらが上位レベルに昇格するのでしょうか?並べ替え方法は?例えば: ### リーリー ###そうですか?
リーリー「知らないJAVASCRIPT」でこの文を見たので、少し混乱しました:
関数宣言と変数宣言が昇格されます。ただし、注目すべき詳細は、関数が最初にプロモートされ、次に変数がプロモートされることです。関数宣言は、通常の変数の前に巻き上げられます。リーリーしたがって、次のようにソートされます:
並べ替えルールを解決してください。ありがとう!
この「改善第一」というのは実は誤解です これは表面的なものです。仕様は順不同です (V8 の実装に興味がある場合は、ここを参照してください)。
リーリーvar
的提升是声明跟赋值分开,function
改善は全体の改善ですので、こうなります
リーリーまずは機能が促進される効果があるということですね。
まず内容は4つに分けることができます
リーリープロモーション後の並べ替え形式がどのようになるかを知りたいですか?
リーリー現在の既知の条件は、変数宣言が変数代入の前に昇格されることですので、当面は内部順序に関係なく、変数宣言を最初の 2 桁に置くことができます:
次に、宣言モジュールと代入モジュールの内部順序をそれぞれ決定しましょう。
リーリー実験を行うために foo 関数を拡張したため、現在の順序は次のとおりです:
なぜこのように変更したかは、実験中に理解できるので、心配しないでください。
リーリー理解を容易にするため、実験は2回に分けて実施しました。
最初に、変数宣言モジュールを試します。
次に、変数割り当てモジュールを試します。
リーリー実験してみましょう:
リーリー実験結果に基づく、最終的なランキング結果は次のとおりです:
リーリーリーリー