javascript实现简易计算器功能


Posted in Javascript onSeptember 23, 2020

本文实例为大家分享了javascript实现简易计算器的具体代码,供大家参考,具体内容如下

功能:

1、实现单击数字按钮输入数字
2、实现基础四则运算功能,并添加必要的异常处理,例如:除数不能为零
3、实现小数点添加功能,并添加异常处理,小数点只能出现一次
4、实现正负号功能
5、实现回退功能,已经是最后一位时,显示框显示为零
6、清屏功能

使用的知识点:

1、利用大量的自定义函数实现业务逻辑
2、灵活运用事件及事件处理
3、培养异常处理的编程方法
4、培养并实践利用不同思路实现编程

综合练习目的:

1、将CSS、HTML和JS有效的惊醒技术组合,实现业务功能
2、锻炼和培养编程思想,解决问题的能力和方法
3、锻炼和培养利用多种编程思路,完成预先设定的目标

页面效果

javascript实现简易计算器功能

源代码

html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>简易计算器</title>
 <link rel="stylesheet" type="text/css" href="demo.css" >
 <script type="text/javascript" src="demo.js"></script>
</head>
<body>
 <form action="http//:www.baidu.com">
 <input type="text" id="text" value="0" disabled /><br/>
 <input type="button" id="reset" class="btn" value="C"/>
 <input type="button" id="back" class="btn" value="←"/>
 <input type="button" id="plus" class="btn" value="+/-"/>
 <input type="button" id="divide" class="btn" value="/"/><br/>
 <input type="button" id="num1" class="btn" value="1"/>
 <input type="button" id="num2" class="btn" value="2"/>
 <input type="button" id="num3" class="btn" value="3"/>
 <input type="button" id="multiply" class="btn" value="*"/><br/>
 <input type="button" id="num4" class="btn" value="4"/>
 <input type="button" id="num5" class="btn" value="5"/>
 <input type="button" id="num6" class="btn" value="6"/>
 <input type="button" id="subtract" class="btn" value="-"/><br/>
 <input type="button" id="num7" class="btn" value="7"/>
 <input type="button" id="num8" class="btn" value="8"/>
 <input type="button" id="num9" class="btn" value="9"/>
 <input type="button" id="add" class="btn" value="+"/><br/>
 <input type="button" id="num0" class="btn" value="0"/>
 <input type="button" id="point" class="btn" value="."/>
 <input type="button" id="equal" class="btn" value="="/>
 <input type="button" id="ddd" class="btn" value="d"/>
 </form>
</body>
</html>

css

*{
 margin: 0;
 padding: 0;
}
/*内外边距*/
input{
 width: 160px;
}
/*宽*/
form{
 width: 200px;
 height: 300px;
 margin: 100px auto 0;

}
/*宽高;外边距*/
#text{
 text-align: right;
 padding-right: 10px;
}
/*文字靠右*/
.btn:hover{
 background: #ccc;
 border: 2px solid #ccc;
}
/*背景颜色,边框*/
.btn{
 width: 40px;
 height: 25px;
 margin-top: 5px;
}
/*宽高,上边距*/

js

window.onload = function(){
 var t = document.getElementById('text');//数字文本
 var num = {
 //数字0-9
 num1:document.getElementById('num1'),
 num2:document.getElementById('num2'),
 num3:document.getElementById('num3'),
 num4:document.getElementById('num4'),
 num5:document.getElementById('num5'),
 num6:document.getElementById('num6'),
 num7:document.getElementById('num7'),
 num8:document.getElementById('num8'),
 num9:document.getElementById('num9'),
 num0:document.getElementById('num0')
 };
 var symbol = {
 divide:document.getElementById('divide'),//除
 multiply:document.getElementById('multiply'),//乘
 subtract:document.getElementById('subtract'),//减
 add:document.getElementById('add'),//加
 reset:document.getElementById('reset'),//归零
 back:document.getElementById('back'),//回退
 plus:document.getElementById('plus'),//正负号
 equal:document.getElementById('equal'),//等于号
 point:document.getElementById('point'),//小数点
 ddd:document.getElementById('ddd')//跳百度
 };
 var n = [];//储存符号
 var sum = '';//前面储存输入的数字
 var a = false; 

 for(var i in symbol){
 symbol[i].onclick = function(){
 switch(this.value){
 case '.' :
  if(text.value!== "0" && this.value=="."){
  //文本框里数字不为零,并且输入小数点
  if(text.value.indexOf(".")!==-1){
  // 处理点重复的问题;文本框里面有小数点
  text.value = text.value;
  } else {
  text.value += this.value;
  }
  } else {
  text.value += this.value;
  }
  break;
 case '+':
  if(n != '+'){
  n = this.value; //储存符号
  sum = t.value; //储存输入的数字
  t.value = '0'; //清0
  }
  break;
 case '-':
  if(n != '-'){
  n = this.value;
  sum = t.value;
  t.value = '0';
  }
  break;
 case '*':
  if(n != '*'){
  n = this.value;
  sum = t.value;
  t.value = '0';
  }
  break;
 case '/':
  if(n != '/'){
  n = this.value;
  sum = t.value;
  t.value = '0';
  }
  break;
 case '=':
  switch(n){
  case '+':
  t.value = parseFloat(sum) + parseFloat(t.value); //输出结果
  n = ''; //符号清空
  break;
  case '-':
  t.value = parseFloat(sum) - parseFloat(t.value);
  n = '';
  break;
  case '*':
  t.value = parseFloat(sum) * parseFloat(t.value);
  n = '';
  break;
  case '/':
  if(parseFloat(t.value) == 0){
  alert('除数不能为0');
  t.value=0;
  } else {
  t.value = parseFloat(sum) / parseFloat(t.value);
  n = '';
  }
  break;
  }
  break;
 case '←' :
  //长度减一
  if (t.value.length>1) {
  t.value = t.value.substr(0,t.value.length-1);
  } else {
  t.value = '0';
  }
  break;
 case 'C' :
  //清0
  t.value = 0;
  break;
 case '+/-' :
  //点击一次*-1
  t.value = t.value * -1;
  break;
 case 'd':
  window.open('http://www.baidu.com');
  break;
 }
 }
 }

 //封装,点击数字输入到文本域中
 function number(numx){
 if (t.value == '0') {
 t.value = numx;
 } else {
 t.value += numx;
 }
 }

 //输入数字
 num.num1.onclick = function(){
 number(this.value);
 }
 num.num2.onclick = function(){
 number(this.value);
 }
 num.num3.onclick = function(){
 number(this.value);
 }
 num.num4.onclick = function(){
 number(this.value);
 }
 num.num5.onclick = function(){
 number(this.value);
 }
 num.num6.onclick = function(){
 number(this.value);
 }
 num.num7.onclick = function(){
 number(this.value);
 }
 num.num8.onclick = function(){
 number(this.value);
 }
 num.num9.onclick = function(){
 number(this.value);
 }
 num.num0.onclick = function(){
 number(this.value);
 }
 

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js保存当前路径(cookies记录)
Dec 14 Javascript
鼠标滚轮控制网页横向移动实现思路
Mar 22 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
原生js实现ajax方法(超简单)
Sep 20 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
基于JS设计12306登录页面
Dec 28 Javascript
从零学习node.js之搭建http服务器(二)
Feb 21 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
微信小程序实现星级评分和展示
Jul 05 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
vue-video-player 断点续播的实现
Feb 01 Vue.js
JS+CSS实现动态时钟
Feb 19 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 #Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 #Javascript
Vue3为什么这么快
Sep 23 #Javascript
Angular短信模板校验代码
Sep 23 #Javascript
JavaScript实现单点登录的示例
Sep 23 #Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 #Javascript
通过实例解析jQ Ajax操作相关原理
Sep 23 #Javascript
You might like
人族 TERRAN 概述
2020/03/14 星际争霸
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
PHP微商城开源代码实例
2019/03/27 PHP
js中的this关键字详解
2013/09/25 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
python查找第k小元素代码分享
2013/12/18 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
详解Python中的分支和循环结构
2020/02/11 Python
大学生学习党课思想汇报
2014/01/03 职场文书
旷课检讨书1000字
2014/02/14 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
《水上飞机》教学反思
2014/04/10 职场文书
2014年内勤工作总结
2014/11/24 职场文书
党员证明信
2015/06/19 职场文书
运动会通讯稿600字
2015/07/20 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
python - asyncio异步编程
2021/04/06 Python
深入理解python协程
2021/06/15 Python
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL