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