內置對象
定義:由ECMAScript實現提供的、獨立於宿主環境的所有對象,在ECMAScript程序開始執行時出現。
由定義可知開發者不必明確實例化內置對象,它已被實例化了。在ECMAScript-262只定義了兩個內置對象,即Global和Math
Global Global對象是ECMAScript中最特別的對象,因為實際上它根本不存在。
由於在ECMAScript中不存在獨立的對象,所有函數都必須是某個對象的方法,如前面提到的isNaN()、isFinite()、parseInt()和parseFloat()等,都是Global對象的方法。
escape()、encodeURI()、encodeURIComponent()、unescape()、decodeURI()、decodeURIComponent()、eval()等都是Global的方法。
escape() && encodeURI() && encodeURIComponent()
這幾個方法用於對字符串進行編碼。
escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不編碼字符有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不編碼字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
escape():不建議用,已淘汰
encodeURI():對URL進行編碼,示例:
復制代碼 代碼如下:
encodeURI("http://www.jb51.net/a file with spaces.html")
// outputs http://www.jb51.net/a%20file%20with%20spaces.html
encodeURIComponent():對參數進行編碼,示例:
復制代碼 代碼如下:
param1 = encodeURIComponent("http://xyz.com/?a=12&b=55")
url ="http://domain.com/?param1="+ param1 +"¶m2=99";
// outputs http://www.domain.com/?param1=http%3A%2F%2Fxyz.com%2F%Ffa%3D12%26b%3D55¶m2=99
unescape() && decodeURI() && decodeURIComponent()
這幾個方法用於對字符串進行解碼。
eval()
eval()可能是ECMAScript語言中最強大的方法,該方法就像整個JavaScript的解釋程序,接受一個參數,即要執行的ECMAScript(或JavaScript)字符串。
示例:
復制代碼 代碼如下:
var msg="Hello world";
eval("alert(msg)");//alert "Hello world"
注意,eval()功能很強大,但也很危險,特別在用eval執行用戶輸入的內容時,可能會被代碼注入。
Global對象的所有屬性
Global不只有方法,它還有屬性,Global對象的所有屬性:
屬性
說明
undefined
Undifined類型的字面量
NaN
非數的專用數值
Infinity
無窮大值的專用數值
Object
Object的構造函數
Array
Array 的構造函數
Function
Function 的構造函數
Boolean
Boolean 的構造函數
String
String 的構造函數
Number
Number 的構造函數
Date
Date 的構造函數
RegExp
RegExp 的構造函數
Error
Error 的構造函數
EvalError
EvalError 的構造函數
RangeError
RangeError 的構造函數
ReferenceError
ReferenceError 的構造函數
SyntaxError
SyntaxError 的構造函數
TypeError
TypeError 的構造函數
URIError
URIError 的構造函數
作者:天行健,自強不息
出處:http://artwl.cnblogs.com