javascript Global对象
Global对象
Global全局对象 ECMAScript中最特别的对象,因为从那个角度上看,这个对象都是不存在的。
isNaN()、isFinite()、parseInt()以及parseFloat(),实际上全部都是Global对象的方法。除此之外Global还包含其他一些方法。
1.URI编码方法
encodeURI()和encodeURIComponent()方法可以对URL进行编码,以便发送给浏览器。
encodeURI()方法 能够将URL中空格字符编码化
encodeURIComponent()方法能够将URL中的非数字字母的字符替换成字符编码
decodeURI()方法能够将URL中的空格字符编码转换为字符与enCodeURI()相对应
decodeURIComponent()方法能够将URL中所有的非数字字母的字符编码转换成字符与encodeURIComponent()相对应
2.eval()方法被誉为最强大的方法
eval()方法能够将传入的字符串代码用ECMAScript解析器解析并且执行。只接受一个参数
eval()执行方法运行时间过长
当解析器发现代码中调用eval()方法时,它会将传入的参数当作实际的ECMAScript语句来解析,然后把执行的结果插入到原位置。通过eval()方法执行的代码被认为是包含该次调用的执行环境的一部分,因此被执行的代码具有与该执行环境相同的作用域链。
3.Global对象的属性
| 属性 | 说明 |
| undefined | 特殊值undefined |
| NaN | 特殊值NaN |
| Infinity | 特殊值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 |
// 1.URI编码方法
var uri = "http://www.wrox.com/illegal value.htm#start";
console.log(encodeURI(uri)); // http://www.wrox.com/illegal%20value.htm#start
console.log(encodeURIComponent(uri)); // http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start
uri = "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start";
console.log(decodeURI(uri));
console.log(decodeURIComponent(uri));
// 2.eval()方法
console.time("eval1");
eval("console.log('hi')");
console.timeEnd('eval1');
eval("console.log(decodeURI(uri))");
// eval()能够解析字符串的能力十分强大,但也十分危险。因此在使用eval()时必须极为谨慎,特别是在用它执行用户输入数据的情况下。
// 4. window对象
var color = "red";
function sayColor(){
console.log(window.color);
}
window.sayColor();
// 另一种获取Global对象的方法
var global = function (){
return this;
}();
console.log(global)


浙公网安备 33010602011771号