Javascript:当循环解决指数时问题在功率等于0时出错

问题描述 投票:0回答:1

我写了javascript代码来解决以下问题>>>

编写一个接受两个参数的函数指数:

  • 基数(数量)
  • 功率(数量)

Exponentiate应该返回通过电源提升基数的结果。假设power参数将始终是大于或等于零的整数。不要忘记任何提升到0次幂的数字都等于1!

function exponentiate (base, power) {

  if (power === 0){
    return result = 1
  }

  // while loop 
  let count = 0
  let result = 1;

  while (count < power){  

    result *= base
    count += 1
  }

  return result 
}


exponentiate(3, 0)

但是我收到以下错误:ReferenceError:未定义结果

我的代码出了什么问题?

javascript loops while-loop exponent
1个回答
1
投票
  1. 您在定义之前访问result。所以你应该把它们放在功能的顶部
  2. 在这里你应该直接返回值而不是赋值 if (power === 0){ return result = 1 }

function exponentiate (base, power) {
  let count = 0
  let result = 1;
  if (power === 0){
    return 1
  }

  // while loop 
  while (count < power){  

    result *= base
    count += 1
  }
  return result 
}

console.log(exponentiate(3, 0))

最简单的是使用** exponent operator

const exp = (b,e)=>{
  return b**e
}

console.log(exp(3,0))
console.log(exp(3,1))
console.log(exp(2,10))
© www.soinside.com 2019 - 2024. All rights reserved.