JavaScript 全局參考手冊

JavaScript 全局屬性和函數可用于所有內置 JavaScript 對象。

JavaScript 全局屬性

屬性 描述
Infinity 表示正/負無窮大的數值。
NaN “非數字”("Not-a-Number")值。
undefined 表示變量尚未賦值。

JavaScript 全局函數

函數 描述
decodeURI() 解碼 URI。
decodeURIComponent() 解碼 URI 組件。
encodeURI() 對 URI 進行編碼。
encodeURIComponent() 對 URI 組件進行編碼。
escape() 在 1.5 版中已棄用。請使用 encodeURI()encodeURIComponent() 代替。
eval() 評估字符串并像腳本代碼一樣執行它。
isFinite() 確定值是否是有限的合法數。
isNaN() 確定值是否是非法數字。
Number() 將對象的值轉換為數字。
parseFloat() 解析字符串并返回浮點數。
parseInt() 解析字符串并返回整數。
String() 將對象的值轉換為字符串。
unescape() 在 1.5 版中已棄用。請使用 decodeURI()decodeURIComponent() 代替。

函數還是方法?

調用上面列表中的全局函數而不是全局方法是有意義的,因為函數是全局調用的,而非任何對象。

無論如何,您也可以調用這些函數方法,因為它們是其運行環境的全局對象的方法。在 Web 瀏覽器中,全局對象是瀏覽器窗口。那么 isNaN() 其實就是一個窗口方法:window.isNaN()。

全局對象描述

全局對象是預定義的對象,作為 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);

親自試一試