JavaScriptプログラムの場合、プログラムの実行を開始すると、JavaScriptインタープリターは、プログラムを使用するグローバルオブジェクトを初期化します。このJavaScript自体によって提供されるグローバルオブジェクトの機能は次のとおりです。
1.グローバルオブジェクトには、一般的に使用されるプロパティ値があります。未定義、無限、ナンなど。
2。グローバルオブジェクトには、一般的に使用される属性オブジェクトがいくつかあります。たとえば、Math、JSON、およびNumberオブジェクトはすべてグローバルオブジェクトのプロパティです。
3.グローバルオブジェクトは、呼び出しにいくつかのグローバル関数を提供します。たとえば、isnan()、isfinite()、parseint()、およびeval()など。
4.グローバルオブジェクトは、いくつかのグローバルコンストラクター、つまりグローバルクラスを提供します。たとえば、date()、regexp()、string()、object()、およびarray()。
JSグローバルオブジェクトに加えて、ブラウザ側で実行されているJavaScriptプログラムの別のグローバルオブジェクト:ウィンドウがあります。ウィンドウグローバルオブジェクトは、現在のウィンドウとページに関連する多くの属性とメソッドを提供します。これらのブラウザ関連のグローバルプロパティとメソッドに加えて、ウィンドウオブジェクトはJSグローバルオブジェクトをカプセル化し、JSグローバルオブジェクトのプロパティとインターフェイスを外部に露出します。したがって、ブラウザ側のJavaScriptプログラミングを実行する場合、ウィンドウグローバルオブジェクトを気にするだけです。
JavaScriptプログラムでは、これが機能に属さない場合、これはJSグローバルオブジェクトを指します。ブラウザで実行されているJSプログラムの場合、これはウィンドウグローバルオブジェクトを指します。
これが関数に属している場合、これは関数を呼び出すオブジェクトを指します。この場合、関数が特定のクラスの方法ではなく通常の関数である場合、この参照には2つの可能性があります。
1。ECMAScript 3 StandardおよびECMAScript 5 Standardの非厳格なモードでは、これはグローバルオブジェクトを指します。
2。ECMAScript 5標準の厳格なモードでは、これは未定義を指します。
この機能に基づいて、次のコードを使用して、現在厳格なモードであるかどうかを判断できます。
コードコピーは次のとおりです。
var strict =(function(){return!this;}());
グローバル変数がJavaScriptプログラムで作成されている場合、このグローバル変数はグローバルオブジェクトのプロパティになります。
実験
コードコピーは次のとおりです。
var a = this;
console.log(a); //ウィンドウオブジェクト
console.log(a.outerwidth); //ウィンドウオブジェクトの属性にアクセスします
console.log(a.isnan); // JSグローバルオブジェクトの属性にアクセスします
x = "test";
console.log(ax); //新しく作成されたグローバル変数値にアクセスします