单体内置对象
ECMA262 对单体内置对象的定义是:“由ECMAScript 实现提供的,不依赖于宿主环境的对象,这些对象在ECMAScript 程序执行就已经存在了。”
Global对象
Global(全局)对象是不存在的,它不属于其他任何对象的属性和方法,最终都是它的属性和方法;所有在全局作用域中定义的属性和函数,都是Global的对象的属性。
URI编码方法
encodeURI()不会对本身属于URI的特殊字符进行编码,例如:冒号、正斜杠、问号和井号
decodeURI()对encodeURI()编码的字符进行解码
encodeURIComponent()会对任何非标准字符进行编码
decodeURIComponent()对encodeURIComponent()编码的字符进行解码
eval()方法
eval()只接收一个参数,即要执行的字符串
eval("alert('hi')"); //等同于alert('hi'),打印hi
eval("var box = 'Hello world';"); //打印Hello world
eval("function sayHi(){alert('hi');}");
sayHi(); //打印hi
在eval()中创建的任何变量或函数都不会被提升,因为值解析代码的时候,它们被包含在一个字符串中;它们只在eval()执行的时候创建。
PS:在使用eval()时必须极为谨慎,特别是在用它执行用户输入数据的情况下。否则,可能会有恶意用户输入威胁你的站点或应用程序安全的代码(即所谓的代码注入)。
Global对象属性
| 属性 | 方法 | 属性 | 方法 |
|---|---|---|---|
undefined |
特殊值undefined |
Date |
构造函数Date |
NaN |
特殊值NaN |
RegExp |
构造函数RegExp |
Infinity |
特殊值Infinity |
Error |
构造函数Error |
Object |
构造函数Object |
EvalError |
构造函数EvalError |
Array |
构造函数Array |
RangeError |
构造函数RangeError |
Function |
构造函数Function |
ReferenceError |
构造函数ReferenceError |
Boolean |
构造函数Boolean |
SyntaxError |
构造函数SyntaxError |
String |
构造函数String |
TypeError |
构造函TypeError |
Number |
构造函数Number |
URIError |
构造函数URIError |
window对象
ECMAScript 虽然没指出如何直接访问 Global对象,但Web 浏览器都是将这个全局对象作为window对象的一部分加以实现的。
Math对象
ECMAScript 还为保存数学公式和信息提供了一个公共位置,即Math对象。
Math对象提供的计算功能执行起来要比自己编写JavaScript 计算程序快得多。
Math对象的属性
| 属性 | 说明 |
|---|---|
Math.E |
常量e |
Math.LN10 |
10的自然对数 |
Math.LN2 |
2的自然对数 |
Math.LOG2E |
以2为底e的对数 |
Math.LOG10E |
以10为底e的对数 |
Math.PI |
常量π |
Math.SQRT1_2 |
1/2的平方根 |
Math.SQRT2 |
2的平方根 |
min()和max()方法
min()和max()方法用于确定一组数值中的最小值和最大值。
舍入方法
Math.ceil()执行向上舍入
Math.floor()向下舍入
Math.round()四舍五入
random()方法
random()方法返回一个[0,1)的随机数。
可封装成一个函数:
function selectFrom(start,end){
var choices = end - start +1;
return Math.floor(Math.Random()*choices + start);
}
alert(slectFrom(5,9)) //打印5-9之间的随机数
其他方法
| 方法 | 说明 | 方法 | 说明 |
|---|---|---|---|
Math.abs(num) |
返回num的绝对值 |
Math.asin(x) |
返回x的反正弦值 |
Math.exp(num) |
返回Math.E的num次幂 |
Math.atan(x) |
返回x的反正切值 |
Math.log(num) |
返回num的自然对数 |
Math.atan2(y,x) |
返回y/x的反正切值 |
Math.pow(num,power) |
返回num的power次幂 |
Math.cox(x) |
返回x的余弦值 |
Math.sqrt(num) |
返回num的平方根 |
Math.sin(x) |
返回x的正弦值 |
Math.acos(x) |
返回x的反余弦值 |
Math.tan(x) |
返回x的正切值 |