为什么我的javascript程序不将其转换为整数而不是字符串?

为什么我的javascript程序不将其转换为整数而不是字符串?,javascript,Javascript,我创建了一个简单的程序,其中需要添加1和3,并显示4,但它显示了13这是我的程序: <html> <head> <style> </style> <script type="text/javascript"> function calculate(){ a = document.getElementById('num1').value;

我创建了一个简单的程序,其中需要添加1和3,并显示4,但它显示了13这是我的程序:

<html>
    <head>
        <style>
        </style>
        <script type="text/javascript">
        function calculate(){

            a = document.getElementById('num1').value;
            b = document.getElementById('num2').value;
            document.getElementById('result').innerHTML = a + b;
        }
        </script>
    </head>
    <body>
        <input id='num1' value="1"/>
        <input id='num2' value='3'/>
        <p id='result'></p>
        <button onclick="calculate()">Calculate</button>
    </body>
</html>

函数计算(){
a=document.getElementById('num1')。值;
b=document.getElementById('num2')。值;
document.getElementById('result').innerHTML=a+b;
}

算计

现在该怎么办?

您必须转换为整数。查看此代码

    function calculate(){

        a = parseInt(document.getElementById('num1').value, 10);
        b = parseInt(document.getElementById('num2').value, 10);
        document.getElementById('result').innerHTML = a + b;
    }

你必须转换成整数。查看此代码

    function calculate(){

        a = parseInt(document.getElementById('num1').value, 10);
        b = parseInt(document.getElementById('num2').value, 10);
        document.getElementById('result').innerHTML = a + b;
    }

这是因为
value
属性返回一个
String
。您需要将其转换为
编号

不过有一个快捷方式,使用
+
一元运算符。您还可以将字符串包装在
Number
中,就像
Number(a)+Number(b)
一样


这是因为
value
属性返回一个
String
。您需要将其转换为
编号

不过有一个快捷方式,使用
+
一元运算符。您还可以将字符串包装在
Number
中,就像
Number(a)+Number(b)
一样

尝试这样做:

document.getElementById('result').innerHTML =  parseInt(a) + parseInt(b);
原因是a和b是字符串,需要先转换为数字。

尝试这样做:

document.getElementById('result').innerHTML =  parseInt(a) + parseInt(b);

原因是a和b是字符串,需要先转换为数字。

很明显,您的代码是串联两个变量,而不是按预期添加。串联是对
string
对象执行的操作,而加法是对数值对象执行的操作。您认为两个
string
变量都需要如何处理才能将它们视为数字?我建议在赋值后声明变量,我的意思是:var a=…很明显,您的代码是连接两个变量,而不是按预期添加。串联是对
string
对象执行的操作,而加法是对数值对象执行的操作。你认为两个
string
变量都需要做什么才能将它们视为数字?我建议在赋值后声明变量,我的意思是:var a=…忽略基数是个坏主意。忽略基数是个坏主意。