为什么这个javascript和html代码没有计算结果?

Jam*_*mie 0 html javascript math

这是代码:

<html>
<body>

<script>
function myFunction(var1,var2){
number=var1+var2
document.write(number)
}
</script>

<form>
Number 1 : <input type="text" name="no1"><br>
Number 2 : <input type="text" name="no2"><br>
<input type="button" onclick="myFunction(this.form.no1.value,this.form.no2.value)" value="submit">
</form>

<p id="demo></p

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我为数字1插入10时,为数字2插入20时,输出为:

1020
Run Code Online (Sandbox Code Playgroud)

但我希望它显示30.我该怎么办?

**我尝试了myFunction(10,20),结果是30.

CJ *_*mki 8

只需使用解析变量值整数使用parseInt()方法或之前,将您的变量名称加上"+".因为变量var1和var2返回字符串.要计算这些变量值,您需要将其转换为整数.

使用parseInt()方法

number=parseInt(var1)+parseInt(var2)
Run Code Online (Sandbox Code Playgroud)

使用+变量名之前转换为整数,

number= +var1 + +var2
Run Code Online (Sandbox Code Playgroud)

试试这段代码,

<html>
    <body>
        <script>
        function myFunction(var1,var2){
            number = parseInt(var1) + parseInt(var2)
            //another way number= +var1+ +var2
            document.write(number)
        }
        </script>
    <form>
        Number 1 : <input type="text" name="no1"><br>
        Number 2 : <input type="text" name="no2"><br>
        <input type="button" onclick="myFunction(this.form.no1.value,this.form.no2.value)" value="submit">
    </form>

    <p id="demo"></p>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用parseInt()DEMO

在变量名称DEMO之前使用+

  • +1并且只是为了提及它,一个简短的隐式转换将是:`number = + var1 + + var2;`*(+符号之间的空格很重要)*ie:`"2"+"3"`是"23",而"+"2"+ +"3"`是"5".虽然`parseInt()`当然是正确的方法. (2认同)