2

JavaScriptには理解できないことが1つあります。

このような変数を宣言すると、次のようになります。

var var_Name

ローカル変数と呼ばれます。

このような変数を宣言すると、次のようになります。

var_Name

それはグローバル変数と呼ばれます。

ブラウザが正確に値をリセットするのはいつですか?ページが更新されたら?

つまり、ページが読み込まれると、変数を宣言し、その時点でその値を増やします。値が元の初期化に戻るのはいつですか?ページを更新するときは?または、ローカル変数の場合は使用を停止するとすぐに更新され、グローバル変数の場合はページが更新されたときにのみ更新されますか?

ありがとう!

4

4 に答える 4

3

グローバル変数は、ページによってロードされた任意のファイル内の任意の関数からアクセスできます。また、ページがリロードされると、何らかのコードが再度実行されて値が割り当てられるまで、変数は設定解除されます。

于 2013-03-08T14:43:53.517 に答える
3

グローバル宣言:

var_Name = 1;
// is equal to
var var_Name = 1;
// and is also equal to
window.var_Name = 1;

変数は、ウィンドウ オブジェクトが存続する限り存続します。そのため、現在のページを離れる/リロードするまで利用できます。

関数内のローカル変数は、関数が実行されている限り存続します。

function y(){
 var x = 1;
 console.log(typeof x !== 'undefined');
}
y();
console.log(typeof x === 'undefined');
于 2013-03-08T14:44:42.060 に答える
2

Javascript エンジンは、ページの読み込み時に変数値を維持しません。したがって、ページの存続期間中に宣言および定義されたグローバル変数は、そのページがリロードされると失われます。

で宣言された変数は、varそれらが定義されているスコープに限定されます。ブラウザーの場合、Function スコープと Global スコープのみがあります。その結果、関数で宣言されたローカル変数は、クロージャー (インターネットで検索する価値のある大きなトピック) によってキャプチャされない限り、関数が戻ると存在しなくなります。

プログラムによる明示的なアクションなしに、変数が最初に割り当てられた値に「更新」されることはありません。それらはスコープ内またはスコープ外のいずれかであり、スコープ内にある場合は、最後に割り当てられた値がすべて含まれます。

関数の外で次を実行することに注意してください。

var foo = 1;

関数のスコープにいない場合はグローバルスコープにいるため、グローバル変数を作成します。

于 2013-03-08T14:44:43.967 に答える
0

グローバル変数はすべてのドキュメントで表示されます。ローカル変数は、定義したブロックでのみ表示されます。変数は、他のドキュメントでは表示されません。

ページを更新すると、すべての変数が新しく設定されます。つまり、変数を保存するまで (たとえば、Cookie や ajax を介して)、変数の値を取得することはできません。

于 2013-03-08T14:45:52.003 に答える