用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 window对象属性整理
Oct 24 Javascript
jquery 图片截取工具jquery.imagecropper.js
Apr 09 Javascript
document.getElementById方法在Firefox与IE中的区别
May 18 Javascript
js 输出内容到新窗口具体实现代码
May 31 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
Mar 13 Javascript
正则中的回溯定义与用法分析【JS与java实现】
Dec 27 Javascript
javascript数据类型详解
Feb 07 Javascript
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
详解Webpack多环境代码打包的方法
Aug 03 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
Mar 09 Javascript
JS实现简易贪吃蛇游戏
Aug 24 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
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
php过滤敏感词的示例
2014/03/31 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
Python super()方法原理详解
2020/03/31 Python
python 6行代码制作月历生成器
2020/09/18 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
党员学习十八大感想
2014/01/17 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
验房委托书
2014/08/30 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
详解Nginx 工作原理
2021/03/31 Servers
python 提取html文本的方法
2021/05/20 Python
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python