简述JavaScript全局对象

全局对象是JavaScript中很是重要的一类对象,它做为程序顶层(程序最顶端,不包括在任何函数以内)的上下文存在,JavaScript中的全局属性、全局函数都是经过全局对象来提供给程序的,好比javascript

        全局属性 如:undefined,Infinity,NaNjava

        全局函数 如:isNaN(),parseInt(),eval()函数

        构造函数 如:Date(),RegExp(),String(),Object(),Array()this

        全局对象 如:Math、JSONcode

当一段JavaScript程序开始执行的时候,JavaScript解释器便会建立一个新的全局对象,将那些初始属性定义给它,这些预约义属性也都是可枚举的。 全局对象仅仅是一个对象,而不是类,不拥有构造函数,故咱们不能实例化一个新的全局对象。对象


咱们在程序中所定义的全局变量也会以全局对象属性的形式存在,全局对象就是全局做用域的“声明上下文对象“:ip

var a = 1;
console.log(this.a); // 1
不使用var关键字的全局变量也是一样:

function test(){
    a = 1;
};
test();
console.log(window.a); // 1
这段代码里还有个点:全局对象window内有个属性window指向它自身,因而咱们能够使用window属性代替this来引用全局对象。


在代码的最顶级能够直接用关键字this来引用全局对象:作用域

 

再好比NodeJs中:it

全局对象的预约义属性是可枚举的,咱们能够使用for in循环来查看它们io

for(var attr in this){
    console.log(attr + ':' + this[attr] + '\n');
}
相关文章
相关标签/搜索