ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript での変数宣言は代入よりも前に行う 分析_JavaScript のヒント

JavaScript での変数宣言は代入よりも前に行う 分析_JavaScript のヒント

WBOY
リリース: 2016-05-16 17:55:47
オリジナル
1046 人が閲覧しました

以下のように

コードをコピーします コードは次のとおりです。
var a = 3; >
実際には 2 つのステップがあります:
1 a を未定義に初期化する
2 値を割り当てる 3

したがって、いくつかの「信じられない」現象が発生します。つまり、JS の変数は最初に使用されてから宣言されます。これは Java では許可されません。



コードをコピーします コードは次のとおりです。System.out.println(a);
int a = 1;


コンパイルは失敗します。ただし、JS では次のようにできます。


コードをコピーします コードは次のとおりです。alert(a); 🎜>var a ;

未定義ですが、エラーは報告されません。これは、 a が実際に宣言されており、未定義であることを示しています。
「var a」のない「alert(a)」だけの場合、JS エンジンはエラーを報告します。



コードをコピーします コードは次のとおりです。 alert(a);
FFは以下の通り



先に使用してから宣言することもできますが、割り当ての効果は失われます。次のように


コードをコピーします コードは次のとおりです。 alert(a); 🎜>var a = 1;


今回の出力は 1 ではなく未定義のままです。
別の例、




コードをコピーします
コードは次のとおりです。 alert(' a' in window); // true var a;

コードは正式にはalertの後に記述されていますが、エンジンは最初にvar宣言を自動的に処理します。最終的な出力は true です。

これを理解すれば、次のコードの結果を理解するのは難しくありません。




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