Javascript 计算时获得NaN

Javascript 计算时获得NaN,javascript,Javascript,当我尝试在html中输入一些数字时,我在这里得到一个NaN值。我不知道为什么 var firstNumber= document.getElementById("numberone").value; var secondNumber = document.getElementById("numbertwo").value; function addition(){ var result = firstNumber + secondNumber; document.getElementB

当我尝试在html中输入一些数字时,我在这里得到一个
NaN
值。我不知道为什么

var firstNumber= document.getElementById("numberone").value;
var secondNumber = document.getElementById("numbertwo").value;

function addition(){
  var result = firstNumber + secondNumber;
  document.getElementById("equals").innerHTML = result;
}

function subtraction(){
  var result = firstNumber - secondNumber;
  document.getElementById("equals").innerHTML = result;
}

function multiplication(){
  var result = firstNumber * secondNumber;
  document.getElementById("equals").innerHTML = result;
}

您应该使用
parseInt(value,base)
解析输入中的值,其中value是输入值,base是数学数字系统中的基数

var firstNumber = parseInt(document.getElementById("numberone").value, 10);
var secondNumber = parseInt(document.getElementById("numbertwo").value, 10);
您可以在此处阅读更多信息:

编辑:
我假设您正在处理整数值,但您可以尝试处理浮点值,或者,也可以使用库来处理和格式化数值,例如在程序开始时设置变量
firstNumber
secondNumber
的值(它们很可能只是空字符串,在执行设置它们的两行代码时,这两个输入还没有填充任何内容)。每当执行依赖于这些值的函数之一时,您应该获得这些值:

function getValue(id) {
    return +document.getElementById(id).value; // get the value of the input whose ID is id and convert the value to a number using unary +
} 

function addition(){
  var result = getValue("numberone") + getValue("numbertwo"); // use getValue here
  document.getElementById("equals").innerHTML = result;
}

function subtraction(){
  var result = getValue("numberone") - getValue("numbertwo"); // here two
  document.getElementById("equals").innerHTML = result;
}

//...

.value
是字符串…但是输入是数字。那么,我怎么能用我的输入不得到NaN呢?你需要使用parseInt或类似的函数来转换你的输入。
.value
总是返回字符串
。value
是不考虑内容的字符串-
parseFloat
/
parseInt
/
Number
…是just有3种方法可以用来解决问题。当然,这是假设OP只想处理整数