问答详情
源自:6-11 编程练习

关于case里面的加号,有点疑问

<!DOCTYPE html>
<html>
 <head>
  <title> 事件</title>  
  <script type="text/javascript">
   function count(){
    var  res;
    //获取第一个输入框的值
	var a=document.getElementById("txt1").value;
	//获取第二个输入框的值
	var b=document.getElementById("txt2").value;
	//获取选择框的值
	var ocal=document.getElementById("select").value;
	//获取通过下拉框来选择的值来改变加减乘除的运算法则
	switch(ocal){
		case "+":
			res=parseInt(a) + parseInt(b);
			break;
		case "-":
			res=a - b;
			break;
		case "*":
			res=a * b;
			break;
		case "/":
			res=a / b;
			break;
		default:
			res="请正确输入";
	}
    //设置结果输入框的值 
	document.getElementById("fruit").value=res;
   }
  </script> 
 </head> 
 <body>
   <input type='text' id='txt1' /> 
   <select id='select'>
		<option value='+'>+</option>
		<option value="-">-</option>
		<option value="*">*</option>
		<option value="/">/</option>
   </select>
   <input type='text' id='txt2' /> 
   <input type='button' value=' = '  onClick="count()"/> <!--通过 = 按钮来调用创建的函数,得到结果--> 
   <input type='text' id='fruit' />   
    
 </body>
</html>

这个能正确运行出来,但是在我第一次的时候加的情况下,因为是写res=a+b,输出的结果单纯是两串字拼接在一起,就像23+55=2355这样,在参考了其他人的写法才知道这个parseInt,我想问下是不是要算加法的话一定要加这个东西?

提问者:C_黑鸡 2017-01-16 13:06

个回答

  • 慕粉3906246
    2017-01-18 11:33:08
    已采纳

    不用,parseInt()的作用是将字符转换为与之相应的整数,

    这个程序里要加是因为取值时document.getElementById("txt1").value语句取到的值是字符类型的,直接运行a+b会被认为是字符相加所以“23”+“55”就是2355,

    而用了parseInt()后,把“23”,“25”两个字符转换为了23,25两个数字,所以a+b就是23+25=47了。

    ps.其实在定义a和b时直接用parseInt()将a,b取整程序会简单一点:

    var a=parseInt(document.getElementById("txt1").value);
    var b=parseInt(document.getElementById("txt2").value);

  • 违丶心
    2017-01-19 19:17:19

    parseInt()的作用是将从输入框中获得的内容转为Int类型,楼上说的很清楚了

  • Ryan幕
    2017-01-16 14:59:46

    不需要啊,parseInt只是对括号中的内容取整操作,不影响其他的