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 相关文章推荐
JavaScript 数组的 uniq 方法
Jan 23 Javascript
JavaScript 内置对象属性及方法集合
Jul 04 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
jQuery查询数据返回object和字符串影响原因是什么
Aug 09 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
什么是cookie?js手动创建和存储cookie
May 27 Javascript
javascript实现无限级select联动菜单
Jan 02 Javascript
JavaScript Length 属性的总结
Nov 02 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
Javascript实现图片懒加载插件的方法
Oct 20 Javascript
基于jquery实现多选下拉列表
Aug 02 jQuery
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
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
Python读写Excel文件方法介绍
2014/11/22 Python
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
团支部建设方案
2014/05/02 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
公司授权委托书范文
2014/09/21 职场文书
向女朋友道歉的话
2015/01/20 职场文书
大学生学年个人总结
2015/02/15 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
运动会开幕式主持词
2015/07/01 职场文书
教学工作总结范文5篇
2019/08/19 职场文书