用js编写的简单的计算器代码程序


Posted in Javascript onAugust 04, 2015

最近编写的一个简单的计算器代码程序,先给大家展示一下

用js编写的简单的计算器代码程序

分享代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title> 
<style type="text/css">
 #box{width: 295px; margin: 0 auto; text-align: justify; border: 1px solid #ddd; padding: 15px;}
 .d_num{display: inline-block; margin: 10px; width: 33px; height: 30px; border: 1px solid #ddd; text-align: center; line-height: 30px; cursor: pointer;}
 .sum{margin: 0 10px 10px; line-height: 30px; font-size: 20px;}
 #sum{width: 205px; height: 30px; padding: 0 5px; margin-left: 5px; font-size: 20px;}
 #process{width: 255px; height: 30px; padding: 0 5px; margin-left: 5px; font-size: 20px;}
</style>
</head> 
<body> 
 <div id="box">
 <div class="sum">
  <input type="text" name="process" id="process" value="0" />
 </div>
 <div class="sum">
  SUM:<input type="text" name="sum" id="sum" value="0" />
 </div>
 <div>
  <span data-num="1" class="d_num">1</span>
  <span data-num="2" class="d_num">2</span>
  <span data-num="3" class="d_num">3</span>
  <span data-num="<-" class="d_num"><-</span>
  <span data-num="C" class="d_num">C</span>
 </div>
 <div>
  <span data-num="4" class="d_num">4</span>
  <span data-num="5" class="d_num">5</span>
  <span data-num="6" class="d_num">6</span>
  <span data-num="*" class="d_num">*</span>
  <span data-num="/" class="d_num">/</span>
 </div>
 <div>
  <span data-num="7" class="d_num">7</span>
  <span data-num="8" class="d_num">8</span>
  <span data-num="9" class="d_num">9</span>
  <span data-num="+" class="d_num">+</span>
  <span data-num="-" class="d_num">-</span>
 </div>
 <div>
  <span data-num="0" class="d_num">0</span>
  <span data-num="00" class="d_num">00</span>
  <span data-num="." class="d_num">.</span>
  <span data-num="%" class="d_num">%</span>
  <span data-num="=" class="d_num">=</span>
 </div>
 </div>
 <script type="text/javascript">
 var $box = document.getElementById('box');
 var $sum = document.getElementById('sum');
 var $process = document.getElementById('process');
 var sum = 0, process = '', num1 = '', num2 = '', temp = '', statu = false;
 $box.onclick = function(e){
 var event = window.event || e;
 var ele = event.srcElement || event.target;
 var _className = ele.className;
 if(_className == 'd_num'){
  var num = ele.getAttribute('data-num');//点击的按钮对应的值
  var NotNum = isNaN(num);
  if(!NotNum || num == '.'){ //点击了数字
  if(!statu){ //还没点击过符号
   if(num1 == '0'){
   num1 = '';
   }
   num1 += num;
   process = num1;
  }else{ //已经点击过符号
   if(num2 == '0'){
   num2 = '';
   }
   num2 += num;
   process = num1 + temp + num2;
  }
  $process.value = process;
  }
  else{ //点击了符号
  if(num1 == ''){//非法操作
   return false;
  }
  if(num == 'C'){//归零
   num1 = '';
   num2 = '';
   process = '';
   temp = '';
   sum = '';
   $process.value = '0';
   $sum.value = '0';
   statu = false;
   return false;
  }
  if(num == '<-'){//退档
   if(sum != ''){
   return false;
   }
   if(num2 == ''){
;   num1 = num1.substring(0,num1.length-1);
   if(num1 == ''){
    num1 = '0';
   }
   process = num1;
   $process.value = process;
   }else{
   num2 = num2.substring(0,num2.length-1);
   if(num2 == ''){
    num2 = '0';
   }
   process = num1 + temp + num2;
   $process.value = process;
   }
   return false;
  }
  if(num2 != ''){//a&b
   if(num == '='){//元操作到此结束
   $process.value = process;
   }else{
   $process.value = process + num;
   }
   switch(temp){//元操作继续
   case '+' : sum = parseFloat(num1) + parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '-' : sum = parseFloat(num1) - parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '*' : sum = parseFloat(num1) * parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '/' : sum = parseFloat(num1) / parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '%' : sum = parseFloat(num1) % parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   }
  }else{//a&?
   if(num == '='){
   return false;
   }
   $process.value = process + num;
   process = '';
  }
  if(num == '='){
   sum = '';
   statu = false;
   return false;
  }
  temp = num;//记录操作符
  statu = true;//已经触发操作状态
  }
 }
 };
 </script>
</div> 
</body> 
</html>

现在只是个简单的标准计算器,能进行加减乘除连续运算,以及求余运算。如果发生被除数为零的错误,下面会给出提示,就像这样:

用js编写的简单的计算器代码程序

这就是我设计的一个小程序,还有许多改进的地方,比如界面的美化,会再接再厉。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
读jQuery之十一 添加事件核心方法
Jul 31 Javascript
jQuery toggleClass应用实例(附效果图)
Apr 06 Javascript
node.js开机自启动脚本文件
Dec 24 Javascript
javascript运算符语法全面概述
Jul 14 Javascript
老生常谈原生JS执行环境与作用域
Nov 22 Javascript
微信小程序 UI布局常用技巧整理总结
Dec 05 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
在vue中实现嵌套页面(iframe)
Jul 30 Javascript
Vue 请求传公共参数的操作
Jul 31 Javascript
javascript记住用户名和登录密码(两种方式)
Aug 04 #Javascript
js实现简易的单数字随机抽奖(0-9)
Mar 19 #Javascript
JavaScript运动减速效果实例分析
Aug 04 #Javascript
JavaScript仿静态分页实现方法
Aug 04 #Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 #Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 #Javascript
JavaScript数组各种常见用法实例分析
Aug 04 #Javascript
You might like
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
Adodb的十个实例(清晰版)
2006/12/31 PHP
php 高效率写法 推荐
2010/02/21 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
如何使用Pytorch搭建模型
2020/10/26 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
支部组织生活会方案
2014/06/10 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
项目建议书
2015/02/04 职场文书
2015年教学工作总结
2015/04/02 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers