js中的单体内置对象

js中的单体内置对象

1.内置对象的定义:由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。

2.开发人员不用显式地实例化内置对象,例如Object、Array和String.

3.两个单体内置对象:Global和Math.

Global对象

1.所有在全局作用域中定义的属性和函数,都是Global对象的属性

2.诸如isNaN()、isFinite()、parseInt()以及parseFloat(),实际上全都是Global对象的方法。

3.Global对象还包含其他一些方法。

(1)URI编码方法

​ Global对象的encodeURI()和encodeURIComponent()方法可以对URI(Uniform Resource Identifiers,通用资源标识符)进行编码,以便发送给浏览器。有效的URI中不能包含某些字符,例如空格。而这两个URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解。

encodeURI():用于对整个URI(例如,http://www.wrox.com/illegal vaue.html)进行编码,不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号。

encodeURIComponent():主要用于对URI某一段进行编码,会对它发现的任何非标准字符进行编码,替换所有非字母数字字符,这也正是可以对整个URI使用encodeURI(),而只能对附加在现有URI后面的字符串使用encoeURIComponent()的原因所在。

注意:

​ 1.与encodeURI()和encodeURIComponent()方法对应的两个方法分别是decodeURI()和decodeURIComponent()。其中,decodeURI()只能对使用encodeURI()替换的字符进行解码,例如,它可将20%替换成一个空格,但不会对23%做任何处理,因为23%表示井字号(#),而井字号(#)不是使用encodeURI()替换的。同样的,decodeURIComponent()能够解码使用encodeURIComponent()编码的所有字符,即它可以解码任何特殊字符的编码。

​ 2.URI方法用于替代已经被ECMA-262第三版废弃的escape()和unescape()方法。URI方法能够编码所有的Unicode字符,而原来的方法只能正确的编码ASCII字符。

(2)eval()方法

eval()方法就像是一个完整的ECMAScript解析器,它只接受一个参数,即要执行的ECMASCript(或javascript)字符串。

eval("console.log('hi')");//hi

注意:

在eval()中创建的任何变量或函数都不会被提升,它们只在eval()执行的时候创建。

小心使用eval()处理执行用户输入数据。否则,可能会有恶意用户输入威胁你的站点或应用程序安全的代码。

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

3.Global对象的属性

特殊的值undefined、NaN以及Infinity都是Global对象的属性。此外,所有原生引用类型的构造函数,像Object和Function,也都是Global对象的属性,Error等抛出错误也是Global对象的属性。

4.window对象

ECMAScript虽然没有指出如何直接访问Global对象,但Web浏览器都是将这个全局对象作为window对象的一部分加以实现的。因此,在全局作用域中声明的所有变量和函数,就都成为了window对象的属性。

var global=function(){
    return this;
}(); 
console.log(global);//window

var color="red";
function sayColor(){
    console.log(this.color);
}
window.sayColor();//red

Math对象

(1)Math对象的属性

如Math.PI、Math.E等,Math对象包含的属性大都是数学计算中可能会用到的一些特殊值。

(2)Math对象的方法

**min()max()**方法用于确定一组数值中的最小值和最大值。这两个方法都可以接受任意多个数值参数。

要找到数组中的最大值或最小值,使用apply()方法

var values=[1,2,3,4,5,25];
var max=Math.max(values);
console.log(max);//NaN
var max=Math.max.apply(this,values);
console.log(max);//25
var min=Math.min.apply(this,values);
console.log(min);//1

舍入方法

将小数值舍入为整数的几个方法:Math.ceil()、Math.floor()和Math.round().

Math.ceil():向上取整

Math.floor():向下取整

Math.round():四舍五入

console.log(Math.ceil(10.4));//11
console.log(Math.ceil(10.5));//11
console.log(Math.ceil(10.8));//11
console.log(Math.floor(10.4));//10
console.log(Math.floor(10.5));//10
console.log(Math.floor(10.8));//10
console.log(Math.round(10.4));//10
console.log(Math.round(10.5));//11
console.log(Math.round(10.8));//11

随机数方法

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

公式:

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

随机数的应用:

//从数组中随机取出一项
function selectForm(lowerValue,upperValue){
    var choices=upperValue-lowerValue+1;
    return Math.floor(Math.random()*choices+lowerValue);
}
var colors=["red","black","yellow","white","green","blue"];
var color=colors[selectForm(0,colors.length-1)];
console.log(color);

其他方法

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

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

……

猜你喜欢

转载自blog.csdn.net/yangyuqingabc/article/details/82714453