ホームページ  >  記事  >  バックエンド開発  >  javascript - この JS コードの変数オブジェクトは何ですか?

javascript - この JS コードの変数オブジェクトは何ですか?

PHP中文网
PHP中文网オリジナル
2016-08-25 10:37:221257ブラウズ

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 で宣言された変数と function で宣言された関数には DontDelete 属性があり、削除できません。

varで宣言されていないグローバル変数(グローバルオブジェクトの属性)は削除可能です

上記はJavaScriptの内容です - このjsコードの変数オブジェクトとは何ですか? 関連する内容については、PHP中国語を参照してください。ウェブサイト (www.php .cn)!




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。