对于任何Javascript程序,当程序开始运行时,Javascript解释器初始化一个全局对象以供程序使用:



1。全局对象具有一些常见的属性值。

2。全局对象具有一些常见的属性对象,例如,数学、JSON和数字对象是全局对象的属性。

三.全局对象提供了大量的调用全局函数。例如,isnan(),(),parseInt()系统,和eval()。

4。全局对象提供了一个全局构造函数(constructor),即全球类。例如,日期(),(),()表达式字符串,对象和数组(),()。



除了JS的全局对象,还有一个全局对象,窗口的Javascript程序运行在浏览器端,窗口的全局对象提供了许多属性和方法对当前窗口和页面相关。除了这些全局属性和方法相关的浏览器窗口对象也封装JS的全局对象,揭露和JS的全局对象接口的属性。因此,当浏览器是Javascript编程时,它们只需要关注窗口全局对象。



在Javascript程序中,如果这不属于任何函数,那么这是指js全局对象。如果是由浏览器端运行的js程序,那么这是指窗口全局对象。



如果这属于一个函数,那么这是指调用函数的对象。如果函数只是这个函数中的一个普通函数,而不是一个类的方法,那么这种表示有两种可能性:



1。这指的是ECMAscript 3标准下的全局对象和ECMAscript 5标准的非严格模式。

2。的ECMAscript 5标准严格的模式下,这是不确定的。



基于此特性,您可以使用以下代码来判断当前流是否处于严格模式中:



复制代码代码如下所示:

var =(函数(){返回)!这个(}());





如果在Javascript程序中创建全局变量,则全局变量将成为全局对象中的一个属性。



实验



复制代码代码如下所示:

var =;

console.log(一); / /窗口对象

console.log(a.outerwidth); / /访问窗口对象的属性

console.log(a.isnan); / /访问JS的全局对象的属性

x;

console.log(内); / /访问新创建的全局变量的值