前端JavaScript面試題準備——全局對象

JavaScript 全局對象
全局屬性和函數可用於所有內建的 JavaScript 對象。

頂層函數(全局函數)

函數                                            描述
decodeURI()                                 解碼某個編碼的 URI。
decodeURIComponent()                       解碼一個編碼的 URI 組件。
encodeURI()                               把字符串編碼爲 URI。
encodeURIComponent()                      把字符串編碼爲 URI 組件。
escape()                               對字符串進行編碼。
eval()                            計算 JavaScript 字符串,並把它作爲腳本代碼來執行。
getClass()                                  返回一個 JavaObject 的 JavaClassisFinite()                                      檢查某個值是否爲有窮大的數。
isNaN()                                   檢查某個值是否是數字。
Number()                                     把對象的值轉換爲數字。
parseFloat()                            解析一個字符串並返回一個浮點數。
parseInt()                                解析一個字符串並返回一個整數。
String()                                 把對象的值轉換爲字符串。
unescape()                          對由 escape() 編碼的字符串進行解碼。

頂層屬性(全局屬性)

方法 描述
Infinity 代表正的無窮大的數值。
java 代表 java.* 包層級的一個 JavaPackage
NaN 指示某個值是不是數字值。
Packages 根 JavaPackage 對象。
undefined 指示未定義的值。
全局對象描述
全局對象是預定義的對象,作爲 JavaScript 的全局函數和全局屬性的佔位符。通過使用全局對象,可以訪問所有其他所有預定義的對象、函數和屬性。全局對象不是任何對象的屬性,所以它沒有名稱。

在頂層 JavaScript 代碼中,可以用關鍵字 this 引用全局對象。但通常不必用這種方式引用全局對象,因爲全局對象是作用域鏈的頭,這意味着所有非限定性的變量和函數名都會作爲該對象的屬性來查詢。例如,當JavaScript 代碼引用 parseInt() 函數時,它引用的是全局對象的 parseInt 屬性。全局對象是作用域鏈的頭,還意味着在頂層 JavaScript 代碼中聲明的所有變量都將成爲全局對象的屬性。

全局對象只是一個對象,而不是類。既沒有構造函數,也無法實例化一個新的全局對象。

在 JavaScript 代碼嵌入一個特殊環境中時,全局對象通常具有環境特定的屬性。實際上,ECMAScript 標準沒有規定全局對象的類型,JavaScript 的實現或嵌入的 JavaScript 都可以把任意類型的對象作爲全局對象,只要該對象定義了這裏列出的基本屬性和函數。例如,在允許通過 LiveConnect 或相關的技術來腳本化 Java 的 JavaScript 實現中,全局對象被賦予了這裏列出的 java 和 Package 屬性以及 getClass() 方法。而在客戶端 JavaScript 中,全局對象就是 Window 對象,表示允許 JavaScript 代碼的 Web 瀏覽器窗口。

例子
在 JavaScript 核心語言中,全局對象的預定義屬性都是不可枚舉的,所有可以用 for/in 循環列出所有隱式或顯式聲明的全局變量,如下所示:

var variables = "";

for (var name in this) 
{
variables += name + "<br />";
}

document.write(variables);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章