JavaScript内置对象Global与Math功能详解

作者:小括号

时间:2026-10-23

浏览:307

本文详细解析JavaScript中两个核心内置对象Global与Math。Global对象封装了URI编码解码及eval执行方法,实际开发中常通过window访问;Math对象提供数学常量、极值判断、舍入算法及随机数生成等高效计算功能,附带完整代码示例。

文章目录

JavaScript内置对象Global与Math功能详解

本文详细解析JavaScript中Global与Math两个内置对象的功能与具体用法,供开发者参考学习。

主要涵盖以下内容:

1. Global对象 2. Math对象

根据ECMA-262标准,内置对象是指由ECMAScript实现提供、不依赖宿主环境的对象,且在程序执行前已存在。这意味着开发者无需手动实例化内置对象,因为它们已经就绪。标准中仅明确定义了Global和Math这两个内置对象。

Global对象:URI编码与eval方法

一、Global对象

Global(全局)对象是ECMAScript中一个特殊的存在,因为它在逻辑上并不作为一个独立对象存在。所有不属于其他对象的属性和方法,均归属于Global对象。因此,严格来说不存在独立的全局变量或全局函数,所有在全局作用域声明的变量和函数,实际上都是Global对象的属性和方法。

注意:由于ECMA-262未定义如何直接调用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));      //特殊字符和中文编码了

注意:由于encodeURIComponent()编码比encodeURI()编码更为彻底,一般来说encodeURIComponent()使用频率更高。

完成URI编码后,还可以进行解码,通过decodeURI()和decodeURIComponent()来进行解码


var box = '//Lee李';
alert(decodeURI(encodeURI(box)));      //还原    
var box = '//Lee李';
alert(decodeURIComponent(encodeURIComponent(box)));    //还原

注意:上述四种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对象:属性、极值与随机数生成

二、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的正切值

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章