Javascript JS新手,无法修复学校项目的错误

Javascript JS新手,无法修复学校项目的错误,javascript,Javascript,我正在为一个计算机类做一个项目,我对JavaScript是新手。我一直在获取NaN的输出,并且一直在寻找答案,但没有找到任何答案。该项目是一个复利计算器和用户界面设计完成 我不确定该尝试什么,因为我是JS新手 var i = getNumber("amountInput"); var c = getNumber("compoundedInput"); var l = getNumber("lengthInput"); var r = getNumber("rateInput"); var rc

我正在为一个计算机类做一个项目,我对JavaScript是新手。我一直在获取NaN的输出,并且一直在寻找答案,但没有找到任何答案。该项目是一个复利计算器和用户界面设计完成

我不确定该尝试什么,因为我是JS新手

var i = getNumber("amountInput");
var c = getNumber("compoundedInput");
var l = getNumber("lengthInput");
var r = getNumber("rateInput");
var rc = r / c;
var cl = c * l;

onEvent("calculateButton", "click", function() {

  var rca = 1 + rc;
  var p = Math.pow(rca, cl);
  var f = i * p;
  setText("outputArea", f);

});

输出应该是一个数字,但我得到的是NaN。

您需要设置OneEvent函数中的所有变量,以便在用户单击按钮后获得输入值。您在第一次加载页面时设置它们,此时输入将为空

onEventcalculateButton,单击,函数{ var i=GetNumberMountInput; var c=getNumbercompoundedInput; var l=GetNumberLength输入; var r=getNumberrateInput; var rc=r/c; var cl=c*l; var-rca=1+rc; var p=数学功率,cl; var f=i*p; settextoutputrea,f; }; JS中的NaN表示“不是数字”

通常,当您尝试将非数字字符串转换为数字时,您会看到NaN,无论是显式转换(例如parseFloat'3),还是隐式转换(例如表达式3*'a'将隐式转换为数字)。值得注意的是,除零并不能给出JS中的NaN,而是给出无穷大或-无穷大;但是,0/0也会给出NaN


对于您的用例,您希望getNumber返回一个数字,但似乎不是。查看getNumber代码或将其复制到问题中。

如果您想从html输入中获取数字,则不能使用getNumber


getNumber做什么?我怀疑这是问题的一部分。它从输入中获取一个数字。还有什么可以做同样的事情吗?发布getNumber方法的实现,正如Barmar所说的,您需要在click处理程序中完成这项工作;这些初始赋值不会在变量和字段之间创建永久绑定。不过,感谢您的输入,我已经解决了这个问题。
<input type="text" id="number" >
<button id="submit">Submit</button>
const number = documnet.getElementById('number');
const submitBtn = document.getElementById('submit');

submitBtn.addEventListener('click', () => {
    const plusOne = 1 + Number(number.value);
    console.log(plusOne)
});