JavaScript添加两个数字,添加vs连接,FCC高尔夫代码挑战 我一直在苦苦思索为什么我的if if语句在PAR之后的任何一个值都不正确地返回。我相信这是因为If-Else试图连接而不是添加,但我不知道如何修复它。谢谢
JavaScript添加两个数字,添加vs连接,FCC高尔夫代码挑战 我一直在苦苦思索为什么我的if if语句在PAR之后的任何一个值都不正确地返回。我相信这是因为If-Else试图连接而不是添加,但我不知道如何修复它。谢谢,javascript,concatenation,Javascript,Concatenation,功能x(标准杆、冲程){ 如果(笔划==1){ 返回“一杆进洞!”; }如果(笔画=PAR + 3){ 返回“回家!”; } } document.getElementById(“submitText”).addEventListener(“单击”,函数(){ 输入=document.getElementById(“inputText”).value; input2=document.getElementById(“InputExt2”).value; document.getElementBy
功能x(标准杆、冲程){
如果(笔划==1){
返回“一杆进洞!”;
}如果(笔画=PAR + 3){
返回“回家!”;
}
}
document.getElementById(“submitText”).addEventListener(“单击”,函数(){
输入=document.getElementById(“inputText”).value;
input2=document.getElementById(“InputExt2”).value;
document.getElementById(“输出”).innerHTML=x(输入,输入2);
});代码>
输入PAR
输入笔划
如果值应为整数,则应使用以下函数将字符串(从document.getElementById(“inputText”).value获得)转换为int:
x(parseInt(input,10), parseInt(input2,10));
功能x(标准杆、冲程){
如果(笔划==1){
返回“一杆进洞!”;
}如果(笔画=PAR + 3){
返回“回家!”;
}
}
document.getElementById(“submitText”).addEventListener(“单击”,函数(){
input=parseInt(document.getElementById(“inputText”).value);
input2=parseInt(document.getElementById(“InputExt2”).value);
document.getElementById(“输出”).innerHTML=x(输入,输入2);
});代码>
输入PAR
输入笔划
您的代码有太多问题
没有
。将其替换为
没有
。根据下面的代码片段正确地替换它
使用parseInt()
将字符串转换为整数
您需要正确学习HTML才能获得正确的输出:
功能x(标准杆、冲程){
PAR=PARSETIN(PAR);
笔划=parseInt(笔划);
如果(笔划==1){
返回“一杆进洞!”;
}如果(笔画=PAR + 3){
返回“回家!”;
}
}
document.getElementById(“submitText”).addEventListener(“单击”,函数(){
输入=document.getElementById(“inputText”).value;
input2=document.getElementById(“InputExt2”).value;
document.getElementById(“输出”).innerHTML=x(输入,输入2);
});代码>
代码>输入PAR
输入笔划
其实很简单。从表单元素(在您的案例中为输入元素)获取的所有值都是字符串,而不是数字
为了计算它们,必须首先将它们转换为数字
修改行以使用JavaScript函数:
x(parseInt(input,10), parseInt(input2,10));
构造代码的更好方法是不存储输入元素的值,而是存储对元素本身的引用。这样,您就可以一遍又一遍地引用对象,而不必一遍又一遍地扫描它们
input = document.getElementById("inputText");
input2 = document.getElementById("inputText2");
var input1Num = parseInt(input.value, 10);
var input2Num = parseInt(input2.value, 10);
x(input1Num, input2Num);
最后,正如其他人指出的,您的一些HTML是不正确的,因为您有这样的标记:
</br>
及
添加到:
你可以在没有其他东西的情况下,以文学的方式使用返回
功能x(标准杆、冲程){
如果(笔划==1){
返回“一杆进洞!”;
}
如果(笔画=PAR+3){
返回“回家!”;
}
}
document.getElementById(“submitText”).addEventListener(“单击”,函数(){
input=+document.getElementById(“inputText”).value;//使用数字
input2=+document.getElementById(“InputExt2”).value;//使用数字
document.getElementById(“输出”).innerHTML=x(输入,输入2);
});代码>
代码>输入PAR
输入笔划
你们在哪里学习使用
。没有比这更好的了!!!山姆,一定要接受答案!伙计,你查过HTML了吗?@PraveenKumar,你说得对!那里有html错误。但主要问题是int/string值的问题:)(无论如何-代码更新)顺便说一句,@PraveenKumar,我的答案上的voteup会很好,因为这是这里第一个提到真正问题的答案-parseInt:)您后来将它添加到了您的答案中。非常感谢!)我还在学习HTML和JavaScript。值得一提的是,您可以使用
或
,但不能使用
。然而,更多的例子说明了XHTML是如何导致比它解决的问题更多的问题的。圣诞快乐@斯科特马库斯哈哈。。欢迎回来。当然你可以说XHTML是一把双刃剑。哈哈。。。的确:)
设置一个字符串变量并在if
分支中设置返回字符串,然后在所有if
语句之后返回该字符串,这样会更简洁。多次返回从来没有带来任何好处@ScottMarcus,它遵循“尽早返回,经常返回”的风格。这种风格是为了避免else
分支。它并没有明确说明多个返回s必然是好的。在这种情况下,您可以使用一个简单的字符串变量来避免所有的else
和return
。在一般编程中,过多的分支代码是一件坏事。这让人想起臭名昭著的goto
@ScottMarcus,请看带有对象的提案。非常有用。谢谢你花时间解释一切!