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,请看带有对象的提案。非常有用。谢谢你花时间解释一切!