ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript変数宣言の深い理解_基礎知識
C/C と比較して、ECMAScript の for ループはローカル コンテキストを作成できません。
alert(k); // ループは終了しましたが、変数 k はまだ現在のスコープ内にあります
変数は常に、var キーワードを使用することによってのみ宣言できます。
上記の代入ステートメント:
a = 10;
これは単にグローバル オブジェクトに新しいプロパティを作成するだけです (ただし、これは変数ではありません)。 「変数ではない」とは変更できないという意味ではなく、ECMAScript仕様の変数概念に準拠していないため「変数ではない」(グローバルオブジェクトのプロパティになり得る理由)これは完全に JavaScript オブジェクトにグローバルがあるためであり、この操作は変数を宣言するのではなく、属性
をグローバル オブジェクトに追加することです。
問題を説明するために簡単な例を見てみましょう
ウィンドウ内の「変数名」
2 番目に、すべての変数宣言はスコープの先頭にあります。同様の例を見てください。
コードをコピーします
コードをコピーします
上記の例の分析によると、変数を宣言するときは、宣言されたローカル変数の前に var を追加する必要があります。グローバル変数を宣言する場合は、var を追加する必要はありません (変数の数を制限するのが最善です)。グローバル変数を使用し、ローカル変数を使用してみてください)
次に、var を使用するいくつかの機能について説明します
var ステートメントを使用して変数を複数回宣言することは合法であるだけでなく、エラーも発生しません。
再利用されたステートメントに初期値がある場合、それは単に代入ステートメントとして機能します。
初期値を指定せずに宣言を再利用した場合、元の変数には影響しません。
var を使用せずに宣言された変数はグローバル変数として存在し、var を使用して宣言された変数は、特に関数内でローカル変数となります。さらに、テスト後、var を使用した宣言は、var を使用しない場合よりも高速です。関数内でできるだけ多くのローカル変数を設定すると、関数内のグローバル変数のランダムな操作によって変数の操作がより合理的になり、安全かつ高速に実行できます。
オブジェクトを宣言するときは、新しいメソッドよりもはるかに高速な、オブジェクトの self-face メソッドを使用するのが最善です。
変数名はセマンティクスと仕様に配慮するために自分で選択しますが、変数名の長さはコードの実行速度にも影響することに注意してください。長い変数名の宣言は、短い変数名ほど速く実行されません。