ECMAScriptjavaScript 内置对象

嵌入对象

 

学习要:

1.Global 对象

2.Math 对象

 

ECMA-262 对放开对象的定义是:“由ECMAScript
实现提供的、不依赖宿主环境之目标,这些目标在ECMAScript
程序执行之前就是都在了。”意思就是,开发人员不必显示地实例化内置对象;因为其曾经实例化了。ECMA-262
只定义了少单放对象:Global和Math。

 

一.Global对象

 

Global(全局)对象是ECMAScript
中一个特地之靶子,因为这目标是无有的。在ECMAScript
中莫属另外其它对象的特性和章程,都属于它们的属性与方。所以,事实上,并无在全局变量和全局函数;所有以大局作用域定义之变量和函数,都是Global
对象的习性与艺术。

PS:因为ECMAScript 没有定义怎么调用Global
对象,所以,Global.属性或者Global.方法()都是废的。(Web 浏览器将Global
作为window 对象的同有加以落实)Global 对象有局部坐的特性与措施:

 

1.URI 编码方法

URI 编码可以针对链接进行编码,以便发送给浏览器。它们采用独特之UTF-8
编码替换所有无效字符,从而给浏览器会接受和清楚。encodeURI()不见面对自我属于URI
的特殊字符进行编码,例如冒号、正斜杠、问号及#声泪俱下;而encodeURIComponent()则会指向它发现的任何不标准字符进行编码

 

var box = ‘//Lee 李’;

alert(encodeURI(box)); //只编码了国文

var box = ‘//Lee 李’;

alert(encodeURIComponent(box)); //特殊字符和国语编码了

 

PS:因为encodeURIComponent()编码比encodeURI()编码来的一发干净,一般的话encodeURIComponent()使用效率要后来居上有。使用了URI
编码过后,还好拓展解码,通过decodeURI()和decodeURIComponent()来进行解码

 

var box = ‘//Lee 李’;

alert(decodeURI(encodeURI(box))); //还原

var box = ‘//Lee 李’;

alert(decodeURIComponent(encodeURIComponent(box))); //还原

 

PS:URI 方法而齐所陈述之季种植,用于代替已经被ECMA-262 第3
版丢之escape()和unescape()方法。URI 方法会编码所有的Unicode
字符,而原先的只是会科学地编码ASCII字符。所以建议并非还以escape()和unescape()方法。

 

2.eval()方法

 

eval()方法要承担一个字符串解析器的用意,他光领一个参数,而之参数就是一旦履行的JavaScript
代码的字符串。

 

eval(‘var box = 100’); //解析了字符串代码

alert(box);

eval(‘alert(100)’); //同上

eval(‘function box() {return 123}’); //函数也足以

alert(box());

 

eval()方法的效力异常强劲,但为甚危险。因此用的早晚要多小心。特别是在用户输入数据的情景下,非常有或引致程序的安全性,比如代码注入等等。

 

3.Global 靶属性

 

Global 对象涵盖了一部分性能:undefined、NaN、Object、Array、Function
等等。

 

alert(Array); //返回构造函数

 

4.window 对象

 

之前曾经证明,Global 没有辙直接访问,而Web 浏览器可行使window
对象来促成一全局访问。

 

alert(window.Array); //同上

 

二.Math对象

ECMAScript 还呢保存数学公式和消息提供了一个目标,即Math
对象。与我们以JavaScript 直接编写计算功能相比,Math
对象提供的乘除功能实施起来要抢得差不多。

 

1.Math 对象的特性

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 的平方根

 

alert(Math.E); //

alert(Math.LN10);

alert(Math.LN2);

alert(Math.LOG2E);

alert(Math.LOG10E);

alert(Math.PI);

alert(Math.SQRT1_2);

alert(Math.SQRT2); //

 

2.min()和max()方法

 

Math.min()用于确定一组数值中的尽小值。Math.max()用于确定一组数值中的太酷价值。

 

alert(Math.min(2,4,3,6,3,8,0,1,3)); //最小值

alert(Math.max(4,7,8,3,1,9,6,0,3,2)); //最大值

 

3.舍入术

 

Math.ceil()执行向上舍入,即其总是以数值向上舍入为最相仿的平头;

Math.floor()执行为下舍入,即其总是将数值为下舍入为无限相近的整数;

Math.round()执行标准舍入,即她连接将数值四放弃五契合乎极端接近的整数;

 

alert(Math.ceil(25.9)); //26

alert(Math.ceil(25.5)); //26

alert(Math.ceil(25.1)); //26

alert(Math.floor(25.9)); //25

alert(Math.floor(25.5)); //25

alert(Math.floor(25.1)); //25

alert(Math.round(25.9)); //26

alert(Math.round(25.5)); //26

alert(Math.round(25.1)); //25

 

4.random()方法

Math.random()方法返回介于0 到1 中间一个肆意数,不包0
和1。如果想超过此样子

圈的话语,可以套用一下公式:

 

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

 

alert(Math.floor(Math.random() * 10 + 1)); //随机产生1-10 之间的任意数

 

for (var i = 0; i<10;i ++) {

document.write(Math.floor(Math.random() * 10 + 5)); //5-14 之间的任意数

document.write(‘<br />’);

}

 

为了更加有利的传递想如果限量,可以形容成函数:

 

function selectFrom(lower, upper) {

var sum = upper – lower + 1; //总数-第一独数+1

return Math.floor(Math.random() * sum + lower);

}

for (var i=0 ;i<10;i++) {

document.write(selectFrom(5,10)); //直接传递范围即可

document.write(‘<br />’);

}

 

5.其它措施

 

方法 说明

 

Math.abs(num) 返回num 的绝对值

Math.exp(num) 返回Math.E 的num 次幂

Math.log(num) 返回num 的自然对数

Math.pow(num,power) 返回num 的power
次幂

Math.sqrt(num) 返回num 的平方根

Math.acos(x) 返回x 的反倒余弦值

Math.asin(x) 返回x 的左右弦值

Math.atan(x) 返回x 的横切值

Math.atan2(y,x) 返回y/x 的左右切值

Math.cos(x) 返回x 的余弦值

Math.sin(x) 返回x 的正弦值

Math.tan(x) 返回x 的正切值