在 ECMAScript 中,所有对象并非同等创建的。一般来说,可以创建并使用的对象有以下几种:本地对象、内置对象、宿主对象、自定义对象。其中本地对象包含内置对象。

内置对象

“由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。”开发人员不必显示地实例化内置对象,因为它们已经实例化了。

Global对象

Global对象是不存在的,ECMAScript中的Global对象在某种意义来说作为一个“兜底对象”。不属于其他对象的属性和方法,最终都是它的属性和方法;所有在全局作用域定义的属性和函数,都是Global对象的属性。Web浏览器实现了承担该角色的window对象。

  • isNaN()
  • isFinite()
  • parseInt()
  • parseFloat()

除此之外Global对象还包含其他一些方法:


URI编码/解码方法

包括encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()

1
2
3
4
5
6
encodeURI()对无效字符进行编码,如空格,但不会对特殊字符进行编码,如冒号、正斜杠、问号、井号;如果需要编码特殊字符需要使用encodeURIComponent()。
var uri = "http://www.baidu.com/ abc.html#def";
alert(encodeURI(uri)); // http://www.baidu.com/%20abc.html#def
alert(encodeURIComponent(uri)); // http%3A%2F%2Fwww.baidu.com%2F%20abc.html%23def


eval()方法

eval()方法像是一个ECMAScript解析器,参数为JavaScript字符串。

1
eval("alert('hi')");

eval()方法可以引用包含环境外的变量,也可以在外部调用eval()内定义的函数。

1
2
3
4
5
var msg = "hello world";
eval("alert(msg)");
eval("function sayHi() { alert('hi'); }");
sayHi();

eval()函数中创建的任何函数或变量都不会变量提升。

严格模式下外部访问不到eval()中创建的任何变量或函数,为eval赋值也不行。

1
2
"use strict";
eval = "hi";

Math对象

min()和max()方法

确定一组数值中的最大值和最小值,可以接收任意多个数值参数。

1
2
var max = Math.max(3, 54, 32, 16);
alert(max); // 54

也可以使用apply()方法调用。

1
2
var values = [1, 2, 3, 4, 5, 6];
var max = Math.max.apply(Math, values);

舍入方法

  • Math.ceil(),向上舍入。
  • Math.floor(),向下舍入。
  • Math.round(),四舍五入最近的整数。
    1
    2
    3
    alert(Math.ceil(25.9)); // 26
    alert(Math.floor(25.9)); // 25
    alert(Math.round(25.9)); // 26

random()方法

Math.random()方法返回大于等于0小于1的一个随机数。

值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)

1
2
3
4
5
6
7
function selectFrom(lowerValue, upperValue) {
var choices = upperValue = lowervalue + 1;
return Math.floor(Math.random * choices + lowerValue);
}
var num = selectFrom(2, 10);
alert(num);

用上面的方法可以轻松获得2~10之间的一个整数。

其他方法

  • Math.abs(num) 返回num绝对值
  • Math.exp(num) 返回Math.E的num次幂
  • Math.log(num) 返回num的自然对数
  • Math.pow(num) 返回num的power次幂
  • Math.sqrt(num) 返回num的平方根

参考:
http://www.w3school.com.cn/js/pro_js_object_types.asp
《JavaScript高级程序设计》