内置对象
定义:由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.google.com/a file with spaces.html")
// outputs http://www.google.com/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 的构造函数 |