javascript中Math对象有哪些功能?【教程】

15次阅读

math 是静态对象,无构造函数,直接调用;常用函数如 abs、round、floor、ceil、trunc、pow、sqrt;random 生成整数需缩放取整;三角函数用弧度,对数函数注意底数与定义域;常量如 PI、E 等精度高且实用。

javascript中Math对象有哪些功能?【教程】

Math 对象不是用来“实例化”的,它是一组静态方法和常量的集合,直接通过 Math 调用即可,没有构造函数,也不能用 new Math()

常用计算函数怎么用?

这些是日常最常调用的函数,注意它们都只接受数字参数,非数字会尝试转为数值(NaN 时返回 NaN):

  • Math.abs(x):取绝对值,Math.abs(-3.5)3.5
  • Math.round(x):四舍五入到最近整数,Math.round(2.5)3(注意:.5 向上取)
  • Math.floor(x):向下取整,Math.floor(2.9)2
  • Math.ceil(x):向上取整,Math.ceil(2.1)3
  • Math.trunc(x):直接截断小数部分(不四舍五入),Math.trunc(-4.7)-4
  • Math.pow(base, exp) 等价于 base ** exp,但 ** 更直观;Math.pow(2, 3)8
  • Math.sqrt(x):开平方,负数返回 NaNMath.sqrt(-1)NaN

随机数生成为什么不能只靠 Math.random()?

Math.random() 只返回 [0, 1) 区间的浮点数(包含 0,不包含 1),要生成指定范围的整数需手动缩放和取整:

function randomInt(min, max) {   return Math.floor(Math.random() * (max - min + 1)) + min; } randomInt(1, 6); // 模拟掷骰子,结果为 1~6 的整数

常见错误:

立即学习Java免费学习笔记(深入)”;

  • 漏掉 +1 导致 max 永远取不到
  • Math.round 替代 Math.floor,导致两端概率减半
  • 没校验 min/max 类型,传入字符串可能隐式转换出错

三角函数和对数要注意什么单位和定义域?

所有三角函数(Math.sinMath.cosMath.tan 等)的输入单位是**弧度**,不是角度。角度转弧度要乘 Math.PI / 180

Math.sin(45 * Math.PI / 180); // ≈ 0.7071,不是 Math.sin(45)

对数函数:

  • Math.log(x) 是自然对数(以 e 为底),不是常用对数(以 10 为底)
  • 需要以 10 为底用 Math.log10(x)es6+),兼容性差时可用 Math.log(x) / Math.LN10
  • x ≤ 0 时所有对数函数均返回 NaN

Math 常量有哪些实际用途?

这些是预定义的高精度常量,比手写更可靠:

  • Math.PI:圆周率 π,用于角度/弧度换算、圆面积等
  • Math.E:自然对数的底 e,配合 Math.exp(x) 使用
  • Math.LN2Math.LN10:log₂(e) 和 log₁₀(e),用于换底公式
  • Math.SQRT2Math.SQRT1_2:√2 和 1/√2,图形计算中高频出现

别手写 3.141592.718,精度低还易错。浏览器保证这些常量是当前平台最高精度的双精度表示。

text=ZqhQzanResources