2017-10-17 57 views
-1

我试图从两个提示(这将需要一个字符串)解析一个整数,并将两个答案添加在一起。到目前为止,提示工作,但没有像预期的那样写入文档。你能告诉我为什么我的代码不能正确显示吗?试图解析提示中的整数

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Chapter 2, Example 6</title> 
    </head> 
    <body> 
    <script> 
var firstNumber = prompt("Enter the first number"); 
var secondNumber = prompt("Enter the second number"); 

    var theTotal = firstNumber.parseInt() + secondNumber.parseInt(); 
    document.write(firstNumber + "added to " + secondNumber + " equals" + theTotal); 

    </script> 
    </body> 
</html> 
+0

字符串没有'.parseInt()'方法;正确使用['parseInt(firstNumber,10)'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt)。如果您打开浏览器的开发工具,控制台应该在该行上显示错误。你也应该测试结果是否是一个数字,因为用户可能会取消提示或键入字母而不是数字。 – nnnnnn

+0

[Vue JS - Calculator - 将输出字符串读取为值]的可能重复(https://stackoverflow.com/questions/45237978/vue-js-calculator-read-output-string-as-value),但没有vueJS部分 –

+0

你不会使用'parseInt(firstNumber)'吗? – Araymer

回答

1

window.prompt()返回一个字符串。

parseInt()不是String prototype的方法,而是接受要解析的字符串的内置函数。

更新这一行:

var theTotal = firstNumber.parseInt() + secondNumber.parseInt(); 

到:

var theTotal = parseInt(firstNumber) + parseInt(secondNumber); 

此外,为了避免混淆读者,并保证可预测的行为,通过第二个参数(即radix) - 大概10碱基10个数字。

var theTotal = parseInt(firstNumber, 10) + parseInt(secondNumber, 10); 

var firstNumber = prompt("Enter the first number"); 
 
var secondNumber = prompt("Enter the second number"); 
 

 
var theTotal = parseInt(firstNumber, 10) + parseInt(secondNumber, 10); 
 
console.log(firstNumber + " added to " + secondNumber + " equals: " + theTotal);

+0

我明白你的意思了。非常感谢。所以它只是语法。至少我是在正确的轨道上。 –

+0

好 - 如果您认为这是最好的解决方案,请[接受答案](http://stackoverflow.com/help/accepted-answer)。有关更多信息,请参阅[当某人回答我的问题时该怎么办?](http://stackoverflow.com/help/someone-answers)。另外,如果你认为它有用,可以考虑给它一个[upvote](http://stackoverflow.com/help/privileges/vote-up)(你首先需要15个声望)。 –

2

当你运行你的代码必须显示firstNumber.parseInt不是函数secondNumber.parseInt不是一个函数因为我们使用parseInt()功能,例如strings转换为integer格式,所以它应该是像parstInt(firstNumber)。还要检查prompt的值,然后再加上firstNumbersecondNumber否则会返回NaN

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title>Chapter 2, Example 6</title> 
 
    </head> 
 
    <body> 
 
<script> 
 

 
var firstNumber = prompt("Enter the first number",""); 
 
var secondNumber = prompt("Enter the second number",""); 
 
if (firstNumber == "" || secondNumber == "") { 
 
    var firstNumber = prompt("Enter the first number",""); 
 
    var secondNumber = prompt("Enter the second number",""); 
 
}else{ 
 
    var theTotal = parseInt(firstNumber, 10) + parseInt(secondNumber, 10); 
 
document.write(firstNumber + " added to " + secondNumber + " equals " + theTotal); 
 
} 
 
</script> 
 
    </body> 
 
</html>