JavaScript指数运算

108

如何在JavaScript中使用指数?

比如,如何计算12的2次方?


8个回答

136

2
在查看“Math”方法时,我看到了“exp”,但是当它不起作用时我就放弃了。 xD 应该再深入研究一下。哦,好吧。谢谢。 - McKayla
9
exp(x) 是指数函数,表示 e 的 x 次幂,即 e^x。其中,e 约等于 2.71828182846...。 - Andreas Rejbrand
有人知道 'pow' 这个名称的来历吗? - Luca Steeb
5
如果你问这个名字的起源,它是“power”的缩写,意思是“2的3次方”。如果你想知道哪种语言最先引入了它作为一个函数,那可能是存在的前几种语言之一。 - Ignacio Vazquez-Abrams

64

25

10

Math.pow(x, y)可以很好地计算x的y次幂,甚至在y不是整数时也能计算表达式。以下是一段不依赖于Math.pow但只能计算整数指数的代码:

function exp(base, exponent) {
  exponent = Math.round(exponent);
  if (exponent == 0) {
    return 1;
  }
  if (exponent < 0) {
    return 1 / exp(base, -exponent);
  }
  if (exponent > 0) {
    return base * exp(base, exponent - 1)
  }
}

1

工作示例:

var a = 10;
var b = 4;

console.log("Using Math.pow():", Math.pow(a,b)); // 10x10x10x10
console.log("Using ** operator:", a**b);  // 10x10x10x10

你可以使用 Math.pow() 或者 ** 运算符


0

// Using Math.pow
console.log(Math.pow(12, 2)); // 144
// Using ES7
console.log(12**2); // 144
// Using Recursion
const power =(base, exponent) => {
  if (exponent === 0) return 1;
  return base * power(base, exponent - 1);
}
console.log(power(12,2)); // 144


-1

如何在JavaScript中执行指数运算
根据MDN
指数运算符返回将第一个操作数提高到第二个操作数的幂的结果。也就是说,在上述语句中,var1 var2,其中var1和var2是变量。指数运算符是右结合的:a ** b ** c等于a ** (b ** c)。
例如:
2**3 // 这里2将乘以2三次,结果为8。
4**4 // 这里4将乘以4四次,结果为256。


-4

Math.pow函数已被弃用

Math.pow(a,b)

所以最好使用指数赋值运算符 **,如下:

a**b

例子:

const postMoneyValuationRevenue = Math.round(
      exitValueRevenue / (1 + returnRatePercentage / 100) ** exitYear,
    );

3
嗨,相同的答案已经被接受了,我相信你的答案和之前的答案没有什么不同,所以你应该总是尝试给出与之前不同的答案。 - Rajeev Singh
请添加更多细节以扩展您的答案,例如工作代码或文档引用。 - Community
Math.pow根本没有被弃用。请查看MDN:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Math/pow - Sami Boudoukha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接