javascript - 関数宣言と宣言された変数が同時に存在しますが、昇格のルールは何ですか?
高洛峰
高洛峰 2017-05-18 10:55:55
0
3
599

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

リーリー

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

リーリー

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

リーリー

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

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

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

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(3)
仅有的幸福

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

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

リーリー

こうなります

リーリー

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

いいねを押す +0
巴扎黑

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

リーリー

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

リーリー

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

リーリー

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

リーリー

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

リーリー

実験してみましょう:

リーリー

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

リーリー
いいねを押す +0
黄舟

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート