首頁 >web前端 >js教程 >什麼是JavaScript全域物件?全域物件有哪些屬性?

什麼是JavaScript全域物件?全域物件有哪些屬性?

伊谢尔伦
伊谢尔伦原創
2017-07-27 13:44:053811瀏覽

對於任何JavaScript程序,當程式開始運行時,JavaScript解釋器都會初始化一個全域物件以供程式使用。這個JavaScript本身提供的全域物件的功能包括:

1.全域物件擁有一些常用的屬性值。例如undefined、Infinity以及NaN。
2.全域物件擁有一些常用的屬性物件。例如Math、JSON和Number物件皆為該全域物件的屬性。
3.全域物件提供一些全域函數供呼叫。例如isNaN()、isFinite()、parseInt()和eval()等。
4.全域物件提供一些全域建構器(constructor),也即全域類別。例如Date()、RegExp()、String()、Object()和Array()等。

除了JS全域對象,對於運行在瀏覽器端的JavaScript程序,還有另一個全域對象:window。 window全域物件提供了與目前視窗、頁面相關的許多屬性與方法。

除了這些與瀏覽器相關的全域屬性和方法,window對象還封裝了JS全域對象,並向外暴露JS全域物件的屬性與介面;因此,當進行瀏覽器端JavaScript程式設計時,只需關心window全域物件即可。

對於JavaScript程式中的this,如果this不屬於任何function,那麼這個this就指代JS全域物件;如果是瀏覽器端執行的JS程序,那麼這個this就指涉window全域物件。

如果這個this屬於某個function,那麼this指涉的就是呼叫該function的物件。若在這種情況下function只是一個普通的函數,而不是某個類別的方法,那麼this的指涉存在兩種可能:

1.在ECMAScript 3標準,以及ECMAScript 5標準的非嚴格模式下,this指涉全域物件。
2.在ECMAScript 5標準的嚴格模式下,this指涉undefined。

根據這個特性,可以使用以下程式碼來判斷目前是否處於嚴格模式:

var strict = (function(){return !this;}());

如果在JavaScript程式中建立了全域變量,那麼這個全域變數會成為全域物件中的一個屬性。

實驗

var a = this;
console.log(a);//window object
console.log(a.outerWidth);//access window object's attribute
console.log(a.isNaN);//access JS global object's attribute
x = "test";
console.log(a.x);//access newly created global variable value


以上是什麼是JavaScript全域物件?全域物件有哪些屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn