var および function キーワード
仅有的幸福
仅有的幸福 2017-05-19 10:29:08
0
5
505

var a = 1;

リーリー

これらの JS コード行は実行時にエラーを報告しますが、その理由は何ですか?神に説明を求めてください

仅有的幸福
仅有的幸福

全員に返信(5)
过去多啦不再A梦

関数は JavaScript の最初の市民であるため、ここには関数のプロモーションがあります。上記のコードの最終的な実装は、次と同じ効果があります

リーリー

これにより、元の関数名が上書きされます。

いいねを押す +0
Ty80

識別子が変数として宣言されています

いいねを押す +0
小葫芦

まず、js について話しましょう。var a = 1 が表示された場合は、2 つのステップで解析する必要があります。まず、var a を現在のスコープの先頭まで上げてから、a = 1 になるまで下方向に解析します。値の割り当てを開始します

これは、変数と関数が同じ名前を持つ問題です。簡単に言うと、JS エンジンの解析順序は次のとおりです。
1. 変数と関数の宣言は現在のスコープの先頭に昇格します → var a ↑ と `function a( )
{

リーリー

}`
2. 次に、残りのコード `a=1;
a()`,

を解析します。
いいねを押す +0
刘奇

関数宣言が事前に行われるためです

リーリー

1) 関数宣言が先頭になります
2) 変数宣言も先頭になります
3) 関数宣言は変数宣言より先頭になります: (関数は変数の上にあります)
4) 変数と代入ステートメントは一緒に記述した場合、js エンジンで解析すると、宣言と代入の 2 つの部分に分かれます。宣言は先頭に配置され、代入は元の位置に保持されます。5) 宣言された変数は繰り返し宣言されません。 。

は次の

と同等になります リーリー お役に立てば幸いです〜

いいねを押す +0
漂亮男人

多くの人がこれが変動昇進の問題であると述べていますが、その説明は完全に正しくありません。 var部分的な改善が行われ、全体として機能が向上します。参考までに

次のようになります:

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