内置对象的官方定义“由ECMAScript实现提供的、不依赖宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。”也就是说,内置对象已经实例化了,已经不需要显示的实例化它们。有两个内置对象:Global和Math。
一、Global对象
ECMAScript中任何不属于其它对象的属性和方法,都是Global对象(全局对象)的属性和方法,实际这个对象是不存在,也就是并不存在全局变量和全局函数。所有在全局作用域中定义的变量和函数,都是Global对象的属性和方法。然而,Global对象是无法调用的,所以Global.属性和Global.方法()都是无效的。Web浏览器将Global作为window对象的一部分进行实现,Global对象有一些内置的属性和方法。
1、URI 编码方法
URI编码采用特殊的UTF-8编码对链接进行编码,替换了所有无效的字符,以便发送给浏览器并能够接受和理解。URI方法如下所述的四种,能够编码所有的Unicode字符。
(1)encodeURI()不会对本身属于URI的特殊字进行编码,譬如冒号:、正斜杠\ 、问号? 、井号# ,
encodeURIComponent()会对其发现的任何非标准字符进行编码。
var demo="//一";
alert(encodeURI(demo));//输出结果//%E4%B8%80,看不懂但只知道保留了//,说明没有编码特殊字符//
alert(encodeURIComponent(demo));//输出结果%2F%2F%E4%B8%80
ncodeURIComponent()编码比encodeURI()编码来的更加彻底,一般来说encodeURIComponent()使用频率要高一些。
使用URI编码之后还可以进行解码。
(2)decodeURI()
decodeURIComponent()
var demo1="//二";
var demo2=encodeURI(demo1);
alert(decodeURI(demo2)); //输出结果//二
var demo3=encodeURIComponent(demo1);
alert(decodeURIComponent(demo3)); //输出结果//二
2、eval() 方法
该方法主要作用是作为一个字符串解析器,它只接受一个参数,而这个参数就是需要执行的JavaScript代码的字符串。
eval("var demo1=100");
alert(demo1); //输出结果100
eval("alert(100)"); //输出结果100
eval("function demo2(){return 123;}");
alert(demo2); //输出结果function demo2(){return 123;}
eval()方法的功能很强大,也很危险,在用户输入数据的情况下,很有可能导致程序的安全性。但现在学习的很基础,再深入的知识点不理解,在以后学习过程中理解了更多时候再来补充。
3、Global对象属性
Global对象包含了一些属性:undefined、NaN、Object、Array、Function等等。
4、window对象
Global没有办法直接访问,而Web浏览器可以使用window对象来实现一全局访问。
二、Math对象
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的平方根(square) |
Math.SQRT2 | 2的平方根 |
//回顾数学之美,微笑脸
alert(Math.E);//2.718281828459045
alert(Math.LN10);//2.302585092994046
alert(Math.LN2);//0.6931471805599453
alert(Math.LOG10E);//0.4342944819032518
alert(Math.LOG2E);//1.4426950408889634
alert(Math.PI);//3.141592653589793
alert(Math.SQRT1_2);//0.7071067811865476
alert(Math.SQRT2);//1.4142135623730951
2、max()方法和min()方法
Math.max()用于确定一组数值中的最大值,Math.min()用于确定一组数值中的最小值。
alert(Math.max(1,1,2,3,5,8,1,3,2,1));//8
alert(Math.min(11,2,3,5,8,13,21));//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() * 总数 + 第一个值)
(1)1-10中产生1个随机数
var demo=Math.floor(Math.random()*10+1);
document.write(demo);
(2)5-19中产生15个随机数
for(var i=0;i<15;i++) //产生15个随机数
{
var demo=Math.floor(Math.random()*15+5);//随机数范围5~19
document.write(demo+"</br>");
}
(3)函数形式,1-5中产生10个随机数
function selectFrom(lower,upper){
var sum=upper-lower+1;
var range=Math.floor(Math.random()*sum+lower);
return range;
}
for(var i=0;i<10;i++){
document.write(selectFrom(1,5)+"</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的正切值 |