簡述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');
}
相關文章
相關標籤/搜索