ES6数学API提供开方和对数计算的原生方法:开方有Math.sqrt()、Math.cbrt()和x**(1/n);对数有Math.log()、Math.log10()、Math.log2()和Math.log1p(),均挂载于Math对象且为静态方法。

JavaScript 中 ES6 的数学 API 提供了直接、可靠的方式进行开方和对数计算,无需手动实现或依赖第三方库。核心方法都挂在 Math 对象上,全部为静态方法,调用时直接使用 Math.方法名() 即可。
开方计算的三种常用方式
ES6 支持多种开方操作,覆盖平方根、立方根及任意次方根:
-
平方根:用
Math.sqrt(x),要求x ≥ 0;负数返回NaN。
例如:Math.sqrt(25)→5 -
立方根:用
Math.cbrt(x),支持负数。
例如:Math.cbrt(-8)→-2 -
任意次方根:用指数运算符
**(ES6 引入),写成x ** (1/n)。
例如:16 ** (1/4)→2(即四次方根);27 ** (1/3)→3
对数计算的四个标准方法
ES6 明确提供了四种常用对数函数,避免了过去需用换底公式的麻烦:
-
自然对数(以 e 为底):
Math.log(x),要求x > 0。
例如:Math.log(Math.E)→1 -
常用对数(以 10 为底):
Math.log10(x)。
例如:Math.log10(1000)→3 -
二进制对数(以 2 为底):
Math.log2(x)。
例如:Math.log2(32)→5 -
安全对数(log(1 + x)):
Math.log1p(x),在x接近 0 时更精确。
例如:Math.log1p(0.001)比Math.log(1.001)数值稳定性更好
注意事项与实用技巧
使用这些方法时需注意几个关键细节:
立即学习“Java免费学习笔记(深入)”;
- 所有输入会隐式转为数字,非数值类型(如字符串
"abc"或null)可能转成NaN,进而导致结果为NaN -
Math.sqrt()和Math.log()等函数不接受负数(除Math.cbrt()外),应提前校验或用Math.abs()处理 - 若需对数组批量开方或取对数,可用
map:[4, 9, 16].map(Math.sqrt)→[2, 3, 4] - 没有内置的“任意底对数”,但可用换底公式:
Math.log(x) / Math.log(base)


















