javascript数学对象是什么_有哪些常用方法

15次阅读

math不是构造函数,不能用new实例化;它是只读静态对象,含常量如PI、E及方法如round、floor、random等,所有方法对非法输入返回NaN而非报错。

javascript数学对象是什么_有哪些常用方法

javaScript 的 Math 对象不是构造函数,不能用 new 实例化

Math 是一个内置的、静态的对象,所有属性和方法都直接挂在它上面,没有原型链,也不可被实例化。写 new Math() 会报错:TypeError: Math is not a constructor。它更像一个工具命名空间,而不是传统意义上的“对象”。

常用数学常量:注意精度和用途限制

这些是只读属性,值为 IEEE 754 双精度浮点数,存在固有精度误差(比如 Math.PI 并非数学上的 π 精确值):

  • Math.PI — 圆周率,约 3.141592653589793
  • Math.E — 自然对数的底,约 2.718281828459045
  • Math.LN2ln(2),约 0.6931471805599453
  • Math.SQRT2 — √2,约 1.4142135623730951

不要用它们做高精度科学计算;需要更高精度时应引入专用库(如 decimal.js)。

最常调用的方法:四舍五入、取整、随机数

这些方法接受一个数字参数,返回处理后的数字。注意输入非数值时会先尝试转换(如 Math.round("2.6") → 3),但 NULLundefined 会转成 NaN,结果也是 NaN

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

  • Math.round(x) — 四舍五入到最近整数(.5 向正无穷舍入)
  • Math.floor(x) — 向下取整(≤ x 的最大整数)
  • Math.ceil(x) — 向上取整(≥ x 的最小整数)
  • Math.trunc(x) — 截断小数部分(只留整数位,不四舍五入,对负数不同于 floor
  • Math.random() — 返回 [0, 1) 区间内的伪随机浮点数(不含 1);生成 [min, max] 整数需组合:
    Math.floor(Math.random() * (max - min + 1)) + min

开方、幂运算与对数:别混淆 **Math.pow

Math.pow(base, exp) 和指数运算符 ** 功能一致,但行为略有差异:

  • 两者都支持负数底数和分数指数(如 Math.pow(-8, 1/3) 返回 NaN,因为 JS 不支持复数;而 (-8) ** (1/3) 同样是 NaN
  • Math.sqrt(x)Math.pow(x, 0.5) 的快捷写法,但对负数直接返回 NaN(比手写 pow 更明确)
  • Math.log(x) 是自然对数(以 e 为底);要算以 10 为底用 Math.log10(x),以 2 为底用 Math.log2(x)

注意:Math.pow(0, 0) 返回 1,而 0 ** 0 在 JS 中也等于 1 —— 这是语言规范定义,不是错误。

真正容易出问题的是边界输入:比如 Math.sqrt(-1)Math.log(-1)Math.floor(NaN) 全部返回 NaN,且不会抛错,必须主动检查。

text=ZqhQzanResources