ホームページ >バックエンド開発 >PHPチュートリアル >javascript - この JS コードの変数オブジェクトは何ですか?
javascript - このjsコードの変数オブジェクトは何ですか?
alert(x); //"x" is not definedalert(b); //"undefined x = 10; var y = 20;
xは変数ではなくウィンドウの属性になっていますか?
この段落を見たからです
「JavaScript 高度なプログラミング」のセクション 4.2.2 のこの文: 「変数が var 宣言なしで初期化された場合、その変数は自動的にグローバル環境に追加されます。」
まず最初に、 を使用して何かを明確にする必要があります。 var キーワードは変数を宣言する唯一の方法です。 var がない場合、たとえば a = 5 の場合、a は変数の代わりにグローバル オブジェクトのプロパティとして使用されます。違いは次のとおりです:
alert(x); //"x" is not defined alert(b); //"undefined x = 10; var y = 20;コンテキストに入った後の最初の段階:
VO = { x:10; }VO に y がない理由は、y が変数ではないためです。
Is he right?
alert(x); //"x" is not defined alert(b); //"undefined x = 10; var y = 20;
Did x become a property of window across a variable?
y is a variable object?
この段落を見たからです
にこんな文があります「JavaScript 高度なプログラミング」のセクション 4.2.2: 「変数が var 宣言なしで初期化された場合、その変数は自動的にグローバル環境に追加されます。」
まず、var キーワードを使用することを明確にする必要があります。変数を宣言する唯一の方法です。 var がない場合、たとえば a = 5 の場合、a は変数の代わりにグローバル オブジェクトのプロパティとして使用されます。違いは次のとおりです:
alert(x); //"x" is not defined alert(b); //"undefined x = 10; var y = 20;コンテキストに入った後の最初の段階:
VO = { x:10; }VO に y がない理由は、y が変数ではないためです。
すみません、彼は正しいですか?
下に入力して、正しいかどうかを確認してください。 。 。この時のウィンドウがコンテキスト実行環境ですよね。
間違いなく、変数オブジェクトは実行コンテキストに関連するデータのスコープです。
これはコンテキストに関連付けられた特別なオブジェクトであり、コンテキストで定義された変数と関数宣言を保存するために使用されます。宣言した変数も宣言しなかった変数も変数です。
http://www.nowmagic.net/libr...
実際、変数や属性について心配する必要はありません。
alert(x)会报错就是因为x没有使用var声明,不会被前置到变量对象中,当执行x=10的时候才会去给全局对象上添加一个x属性。
ブラウザでは、グローバル スコープで定義されているすべてのプロパティはウィンドウ プロパティです。ここで、x と y は両方ともウィンドウの変数および属性です。両方のグローバル変数はウィンドウ オブジェクトのプロパティです。
の違い:
delete 演算子はオブジェクト属性を削除するために使用されます。
varで宣言されていないグローバル変数(グローバルオブジェクトの属性)は削除可能です