JavaScript Math 对象详解:属性、舍入、指数与随机数应用

作者:小括号

时间:2026-10-24

浏览:246

本文详细介绍 JavaScript 内置的 Math 对象,涵盖其静态属性如 PI 和 E,以及 min、max、abs 等基础计算方法。重点解析 ceil、floor、round 的舍入差异,exp、log、pow、sqrt 等指数运算逻辑,并深入讲解利用 random 结合 floor 生成指定范围随机整数的技巧及数组随机项选择方法。

文章目录

Math 对象概述

Math 对象

Math 对象是 JavaScript 中的内置对象,其概念源于高中数学课程。它封装了处理复杂数学问题所需的所有公式,只需传入待处理的数字,即可计算出相应结果。

Math 对象包含若干属性,主要存储数学领域的专用常数。下表列出了这些属性:

属  性

说    明

E

值e,自然对数的底

LN10

10的自然对数

LN2

2的自然对数

LOG2E

以2为底E的对数

LOG10E

以10为底E的对数

PI

值π

SQRT1_2

1/2的平方根

SQRT2

2的平方根

尽管这些值的意义和用法不在本书讨论范围内,但了解它们的具体含义后,在需要时即可直接调用使用。

基础计算方法

此外,Math 对象还提供了大量方法,用于执行简单或复杂的数学计算。

min() 和 max() 方法分别用于在一组数值中找出最小值和最大值。这两个方法均支持接收任意数量的参数:

Math 对象概述Math 对象概述

Math 对象概述

对于数字 3、54、32 和 16,max() 返回 54,min() 返回 3。使用这些方法可以省去编写循环或 if 语句来判断一组数中最大值的步骤。

另一个方法是 abs(),用于返回数字的绝对值。绝对值即负数的正值形式(正数的绝对值为其自身)。

Math 对象概述

例如,abs(-1) 返回 1,abs(1) 也返回 1。

数值舍入处理

接下来介绍一组用于将小数舍入为整数的方法。处理舍入操作的方法共有三个:ceil()、floor() 和 round(),它们的处理逻辑各不相同:

q 方法 ceil() 表示向上舍入函数,始终将数字向上舍入到最接近的整数值。

q 方法 floor() 表示向下舍入函数,始终将数字向下舍入到最接近的整数值。

q 方法 round() 表示标准舍入函数,如果数字与下一个整数的差不超过 0.5,则向上舍入,否则向下舍入。这是初中阶段学习的舍入规则。

为了说明每种方法的处理方式,考虑使用值 25.5:

Math 对象概述

对于 ceil() 和 round(),传入 25.5 时返回 26,而 floor() 返回 25。注意不要交替使用这些方法,否则最终结果可能与预期不符。

指数与对数运算

另一组方法与指数运算相关。这些方法包括 exp(),用于将 Math.E 提升到指定的幂;log() 用于返回特定数字的自然对数;pow() 用于将指定数字提升到指定的幂;sqrt() 用于返回指定数字的平方根。

方法 exp() 和 log() 在功能上本质相反。exp() 将 Math.E 提升到特定幂,而 log() 则计算 Math.E 的多少次指数等于指定值。例如:

Math 对象概述Math 对象概述

此处首先使用 exp() 将 Math.E 提升到 10 次幂,随后 log() 返回 10,即等于数字 iNum 所需的指数。许多人对此感到困惑。全球的高中生和数学系大学生常被此类问题难倒。如果你对自然对数一无所知,那么有可能永远都不需要为此编写代码。

方法 pow() 用于将数字提升到指定的幂,例如将 2 提升到 10 次幂(在数学中表示为 210):

Math 对象概述

pow() 的第一个参数是基数,此例子中是 2。第二个参数是要升到的幂,此例子中是 10。

不建议将 Math.E 作为 pow() 方法的基数。最好使用 exp() 对 Math.E 进行升幂运算,因为它是专用运算,计算出的值更精确。

这组方法中的最后一个方法是 sqrt(),用于返回指定数字的平方根。它仅接受一个参数,即要求平方根的数字。要求 4 的平方根,只需要一行代码:

Math 对象概述

当然,4 的平方根是 2,即这行代码的输出。

你也许会问“为什么平方根必须利用指数”?实际上,数字的平方根即它的 1/2 次幂。例如,21/2 就是 2 的平方根。

三角函数与随机数生成

Math 对象还包含一套完整的三角函数方法。下表列出了这些方法:

方    法

说    明

acos(x)

返回x的反余弦值

asin(x)

返回x的反正弦值

atan(x)

返回x的反正切值

atan2(y,x)

返回y/x的反余弦值

cos(x)

返回x的余弦值

sin(x)

返回x的正弦值

JavaScript Math 对象详解:属性、舍入、指数与随机数应用 配图tan(x)

返回x的正切值

即使这些方法是 ECMA-262 定义的,结果也是由实现决定的,因为每个值的计算方法有多种,导致不同实现生成的结果精度不同。

Math 对象的最后一个方法是 random(),该方法返回一个 0 到 1 之间的随机数,不包括 0 和 1。这是在主页上显示随机引述或新闻的站点常用的工具。可用下面的形式调用 random() 方法,在某个范围内选择随机数:

Math 对象概述

此处使用方法 floor(),因为 random() 返回的都是小数值,也就是说,用它乘以一个数,然后再加上一个数,得到的仍然是小数值。通常你想选择一个随机整数值。因此,必须使用 floor() 方法。如果想选择一个 1 到 10 之间的数,代码如下:

Math 对象概述

可能出现的值有 10 个(1 到 10),这些值中的第一个是 1。如果想选择 2 到 10 之间的值,代码如下:

Math 对象概述

从 2 到 10,只有 9 个数字,所以选项总数为 9,其中第一个值是 2。许多时候,使用计算选项总数的函数和第一个可用的值更容易些:

Math 对象概述

使用函数,可很容易地选择 Array 中的随机项:

Math 对象概述

这里,selectFrom() 函数的第二个参数是数组的长度减 1,即数组中最后一个元素的位置。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章