Global对象非常特别,它是个不存在的对象,事实上所有在全局作用域中定义的属性和函数,都是 Global 对象的属性。比如: isNaN()、isFinite()、parseInt()以及 parseFloat(),实际上全都是 Global对象的方法。
它提供的常用属性如下所示:
其中Number属性提供了下面几个子属性:
- Number.MAX_VALUE : 定义了数值最大值,我这里的值为1.7976931348623157e+308
- Number. MIN_VALUE : 定义了数值最小值,我这里的值为5e-324
- Number.POSITIVE_INFINITY: 无穷大,值为Infinity
- Number.NEGATIVE_INFINITY: 无穷小,值为-Infinity
它提供的常用方法如下所示:
- isFinite(number) : number如果是无穷的,则返回false,有穷则返回true
- isNaN(val) : 判断val是否非数字,返回true,则表示非数字
- parseInt(var) : 将var解析为整数并返回
- parseFloat(var): 将var解析为浮点数并返回
- Boolean(var) : 将var强制类型转换成bool类型,如果var至少是有一个字符的字符串、或者非 0 数字或对象时,将返回true
- Number(var) : 将var转换强制类型转换成数字方法
- String(var) : 将var转换强制类型转换成字符串方法
- encodeURI(var) : 只会对非ASCII字符进行编码
- encodeURIComponent(var) : 除了对非ASCII字符编码外,还会对特殊字符进行编码,比如": / ? #"
示例如下:
var uri = "http://192.168.1.159:8020/test 测试.html#1"; console.log(encodeURI(uri)); // 打印:http://192.168.1.159:8020/test%20%E6%B5%8B%E8%AF%95.html#1 console.log(encodeURIComponent(uri)); // 打印:http%3A%2F%2F192.168.1.159%3A8020%2Ftest%20%E6%B5%8B%E8%AF%95.html%23
- decodeURI(var) : 由于只能非ASCII字符解码,所以仅支持对encodeURI()的值解码
- decodeURIComponent(var) : 支持特殊字符和非ASCII字符解码
示例如下所示:
var uri = "http://192.168.1.159:8020/test 测试.html#1"; var eUri = encodeURI(uri); var eUriComponent = encodeURIComponent(uri); console.log(decodeURI(eUri)); // 打印http://192.168.1.159:8020/test 测试.html#1 console.log(decodeURI(eUriComponent)); // 打印乱码,因为decodeURI()只支持对encodeURI()的值解码 console.log(decodeURIComponent(eUri)); // 打印http://192.168.1.159:8020/test 测试.html#1 console.log(decodeURIComponent(eUriComponent)); // 打印http://192.168.1.159:8020/test 测试.html#1
因为URL编码格式只支持ASCII码,为了支持非ASCII字符,所以需要一个编码解码过程
- eval(str) : 解析器(evaluate),将字符串当做一段ECMAScript 语句来解析并运行.
示例如下所示:
var a = 10; var b; eval("b = a + 2"); // b =12 eval("function print(data) { console.log(data); }"); print(b); // 打印 12