Global(全局)对象可以说是ECMAScript中最特别的一个对象了, 因为不管你从什么角度上看, 这个对象都是不存在的. ECMAScript中的 Global 对象在某种意义上是作为一个终极的 " 兜底儿对象" 来定义的. 换句话说, 不属于任何其他对象的属性和方法. 事实上没有全局变量或者全局函数; 所有在全局作用域中定义的属性和函数, 都是Global 对象的属性. 本书前面介绍过的那些函数, 诸如 isNaN() 、isFinite()、 parseInt() 以及 parseFloat(), 实际上全都是Global对象的方法。 除此之外, Global对象还包含其他一些方法。
1. URI编码方法
Global对象的 encodeURI()和encodeURIComponent()方法可以对URI(Uniform Resource Identifiers, 通用资源标识符)进行编码, 一边发送给浏览器。 有效的URI中不能包含某些字符,例如空格。 而这两个URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解。
其中,encodeURI() 主要用于整个URI(例如,http://www.wrox.com/illegalvalue.htm),而encodeURIComponent()重要用于对URI中的某一段(例如前面URI中的illegal value.html)进行编码。
它们的主要区别在于, encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而encodeURICompnent()则会对它发现的任何非标准字符进行编码。 来看下面的例子。
var uri = 'http://www.wrow.com/illegal value.htm#start';
// http://www.wrow.com/illegal%20value.htm#start
console.log(encodeURI(uri));
// http%3A%2F%2Fwww.wrow.com%2Fillegal%20value.htm%23start
console.log(encodeURIComponent(uri));
网友评论