Javascript计算器练习

来源:6-11 编程练习

慕斯卡4106679

2015-12-22 18:30

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

       var input1,input2,get1,results;

    //获取第一个输入框的值

    input1=parseInt(document.getElementById("txt1").value);

//获取第二个输入框的值

     input2=parseInt(document.getElementById("txt2").value);

//获取选择框的值

    get1=document.getElementById('select').value;

//获取通过下拉框来选择的值来改变加减乘除的运算法则

    //设置结果输入框的值 

  switch(get1){

      case '+':

     results=input1+input2;

     break;

        case '-':

     results=input1-input2;

     break;

       case '*':

     results=input1*input2;

     break; 

        case '/':

     results=input1/input2;

     break;

  }

  document.getElementById('fruit').value=results;

   }

  </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>


前两个输入的数值为什么要加parseInt转化?value得到不是数值吗?

写回答 关注

2回答

  • 李晓健
    2015-12-22 18:34:53
    已采纳

    js是弱类型的语言,你取出来的值他也不知道应该是什么类型。当你用 + 时,因为字符串也可以相加,所以他就当字符串处理了。- * / 只有数字有,所以他就会自动转成数字。 

    慕斯卡410...

    主要是+号!

    2015-12-27 14:57:30

    共 4 条回复 >

  • Acelit
    2015-12-26 12:50:15

    JS中的'+'有两重含义(二义运算符):字符连接符和四则运算符加,在没有确切指出运算类型的情况下使用字符运算这层含义。元素的value返回的是字符串,只有在转化为数值时进行四则运算才能得出正确结果。而'-''*''/'均为一义运算符,只有两边均为数值类型时才返回结果。

    查看一下将'txt1'和'txt2'填入非数值字符后进行四则运算的结果,很有意思呢。

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468825 学习 · 22582 问题

查看课程

相似问题