ホームページ > 記事 > ウェブフロントエンド > javascript_javascript スキルで var を追加する場合と追加しない場合の違いを本当に理解していますか?
JavaScript は ECMAScript 標準に準拠した製品であり、当然のことながら ECMAScript 標準に準拠する必要があります。
まず var キーワードの定義と使用法を見てみましょう
var ステートメントは変数を宣言するために使用されます。
JavaScript 変数の作成は、変数の「宣言」とも呼ばれます:
変数が宣言された後、その変数は空になります (値がありません)。
変数をコピーします。操作は次のとおりです:
変数を宣言するときに、変数に値を代入することもできます。
文法
パラメータ値
パラメータ | 説明 |
---|---|
変数名 | 必須です。変数名を指定します。
変数名には、文字、数字、アンダースコア、ドル記号を含めることができます。
|
値 | オプション。変数の値を指定します。 注: 変数宣言で値が指定されていない場合、デフォルト値は 未定義 | です。
誰もが多くの記事を読んでいますが、グローバル変数の暗黙的な宣言を避けるようにと述べています。つまり、変数を宣言する前に 'var' を追加する必要があります。では、'var' を追加する場合と追加しない場合の違いは何でしょうか。 ?
まずコードを見てみましょう
var a = 'aa'; alert(a); //弹出 'aa' alert(window.a)//弹出'aa'
グローバル変数を宣言すると、実際には「window」オブジェクトに属性を追加することになります。次のコードでも同じ効果があります
。
a = 'aa'; alert(a); //弹出 'aa' alert(window.a)//弹出'aa'
では、"var a = 'aa' " と "a = 'aa' " はどちらもグローバル変数ですが、違いは何でしょうか? 次の 2 つのコードを見てください
var a = 'aa'; delete window.a; // false a = 'aa'; delete window.a; // true
それらはすべて「window」オブジェクトに属性を追加します。1 つは削除できますが、もう 1 つは削除できません。ただし、「var」を追加すると、スコープが関連付けられます。「var」を使用しないと、常に属性が「window」オブジェクトに動的に追加されます。
var test = function(){ a = 'aa'; } test(); alert(window.a);//弹出'aa'
window オブジェクトはグローバル オブジェクトであるため、デフォルトで省略できます。次の段落も同じ効果があります。
var test = function(){ a = 'aa'; } test(); alert(a);//弹出'aa'
そう言えば、真剣に考えている学生は、なぜ暗黙的に宣言されたグローバル変数は削除できるのに、明示的に宣言されたグローバル変数は削除できないのかという疑問を抱いているはずです。
その理由は、「構成可能性が false のプロパティを削除することはできない」ためです。変数宣言や関数宣言によって作成されたグローバル オブジェクトのプロパティなど、一部の組み込みオブジェクトのプロパティは構成可能ではありません。
delete Object.prototype; // false 不可删除,该属性是不可配置的 var a = 'aa'; delete window.a;//false 不可删除,该属性是不可配置的 function test(){}; delete window.test;//false 不可删除,该属性是不可配置的
では、「var」を使用して宣言されたグローバル変数は、実際には「window」オブジェクトに構成不可能な属性を追加する一方、「var」なしで宣言されたグローバル変数は、実際には構成不可能な属性を「window」オブジェクトに追加するということを理解していませんか? 'window' オブジェクト。設定可能なプロパティが 'window' オブジェクトに追加されます。
上記で window が使用されている場合はどこでも、window を次のように置き換えることができることに注意してください:
var test = function(){ a = 'aa'; } test(); alert(this.a);//弹出'aa'
その理由については、以前書いた記事をご確認ください「これ、これ、JavaScriptでもう一度議論、超包括的」
以下では、JavaScript の var キーワードを取り出して、個別に説明します。
変数を定義するときは、Var キーワードを使用する必要があることがわかっています。Var キーワードを使用する場合は、その使用法に注意する必要があります。
次の例は、Var を使用する場合と使用しない場合、およびグローバル変数とローカル変数が定義されている場合に実行結果が異なることを十分に示しています。
var var01 = 1; function funtest() { document.write(var01); var var01 = 0; }
結果は次のようになります: 未定義
var var01 = 1; function funtest() { document.write(var01); var01 = 0; }
結果は: 1
var01 = 1; function funtest() { document.write(var01); var var01 = 0; }
結果は次のようになります: 未定義
var01 = 1; function funtest() { document.write(var01); var01 = 0; }
結果は: 1
JavaScript の var についてどれだけ知っているかをここで確認してください。この記事を通じて誰もが何かを得ることができると思います。 JavaScript var についてさらに詳しく知りたい場合は、引き続きこのサイトに注目してください。ありがとうございます。