基于javascript实现简单计算器功能


Posted in Javascript onJanuary 03, 2016

本文实例为大家介绍javascript实现简单计算器功能的详细代码,分享给大家供大家参考,具体内容如下

效果图:

基于javascript实现简单计算器功能

实现代码:

<html> 
  <head> 
    <script> 
      function calc(event){ 
        // test  
        //window.alert(event.value); 
        var val = new String(event.value); 
        // clear space 
        val = val.trim(); 
        var res = document.getElementById("res"); 
        // clear 
        if(val == "clear"){ 
          res.value = ""; 
        } 
 
        // back 
        if(val == "back"){ 
          res.value = res.value.substring(0, res.value.length - 1); 
        } 
 
        // power 
        if(val == "power"){ 
          val = "p"; 
        } 
        // add val to text 
        if(val.length == 1 && val != "="){ 
          res.value = res.value + val; 
        } 
  
        // calc result 
        if(val == "="){ 
          var arr; 
          var result; 
          // power 
          if(res.value.indexOf("p") != -1){ 
            arr = res.value.split("p"); 
            //window.alert(arr); 
             result = Math.pow(parseFloat(arr[0]) ,parseFloat(arr[1])); 
            //window.alert(res); 
            res.value = result; 
          }       
          // plus 
          if(res.value.indexOf("+") != -1){ 
            arr = res.value.split("+"); 
            //window.alert(arr); 
             result = parseFloat(arr[0]) + parseFloat(arr[1]); 
            //window.alert(res); 
            res.value = result; 
          } else if(res.value.indexOf("-") != -1){ 
            // minus 
            arr = res.value.split("-"); 
            //window.alert(arr); 
            result = parseFloat(arr[0]) - parseFloat(arr[1]); 
            //window.alert(res); 
            res.value = result; 
          } else if(res.value.indexOf("*") != -1){ 
            // multiply 
            arr = res.value.split("*"); 
            //window.alert(arr); 
            result = parseFloat(arr[0]) * parseFloat(arr[1]); 
            //window.alert(res); 
            res.value = result; 
          } else if(res.value.indexOf("/") != -1){ 
            // division 
            arr = res.value.split("/"); 
            //window.alert(arr); 
            result = parseFloat(arr[0]) / parseFloat(arr[1]); 
            //window.alert(res); 
            res.value = result; 
          } else if(res.value.indexOf("%") != -1){ 
            // module 
            arr = res.value.split("%"); 
            //window.alert(arr); 
            result = parseFloat(arr[0]) % parseFloat(arr[1]); 
            //window.alert(res); 
            res.value = result; 
          } 
        }   
      } 
    </script> 
  </head> 
  <body> 
    <table border="1px" cellpadding="10px" cellspacing="5px" align="center"> 
      <tr align="center"> 
        <td colspan="4"><input type="text" id="res" size="35px" value="" style="text-align:right;"/></td> 
      </tr> 
      <tr align="center"> 
        <td><input type="button" value="power" onclick="calc(this)"/></td> 
        <td><input type="button" value="clear" onclick="calc(this)"/></td> 
        <td colspan="2"><input type="button" value="   back   " onclick="calc(this)"/></td> 
      </tr> 
      <tr align="center"> 
        <td><input type="button" value="  1  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  2  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  3  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  +  " onclick="calc(this)"/></td> 
      </tr> 
      <tr align="center"> 
        <td><input type="button" value="  4  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  5  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  6  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  -  " onclick="calc(this)"/></td> 
      </tr> 
      <tr align="center"> 
        <td><input type="button" value="  7  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  8  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  9  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  *  " onclick="calc(this)"/></td> 
      </tr> 
      <tr align="center"> 
        <td><input type="button" value="  0  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  =  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  %  " onclick="calc(this)"/></td> 
        <td><input type="button" value="  /  " onclick="calc(this)"/></td> 
      </tr> 
    </table> 
  </body> 
</html>

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JQuery实现用户名无刷新验证的小例子
Mar 22 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
[原创]推荐10款最热门jQuery UI框架
Aug 19 Javascript
javascript中createElement的两种创建方式
May 14 Javascript
JS判断字符串变量是否含有某个字串的实现方法
Jun 03 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
Feb 20 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 Javascript
AngularJS 异步解决实现方法
Jun 12 Javascript
js实现通过开始结束控制的计时器
Feb 25 Javascript
微信小程序云开发之云函数详解
May 16 Javascript
详解Javascript事件驱动编程
Jan 03 #Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 #Javascript
js实现搜索框关键字智能匹配代码
Mar 26 #Javascript
javascript合并表格单元格实例代码
Jan 03 #Javascript
JS Array.slice 截取数组的实现方法
Jan 02 #Javascript
jquery实现简单的全选和反选功能
Jan 02 #Javascript
基于Javascript实现弹出页面效果
Jan 01 #Javascript
You might like
php封装单文件上传到数据库(路径)
2017/10/15 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
网络安全方面的面试题
2015/11/04 面试题
斯福泰克软件测试面试题
2015/02/16 面试题
高中生自我评语大全
2014/01/19 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
2014年加油站工作总结
2014/12/04 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
中学团支部工作总结
2015/08/13 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
Python中常见的导入方式总结
2021/05/06 Python
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python