内置对象
定义:由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