JS实现计算器(简易版)_作业1
来源:互联网 发布:淘宝试用申请成功 编辑:程序博客网 时间:2024/05/29 14:27
这个简易版的计算器是没有退格的也只有简单的加减乘除操作。emmmmmmm如果闲下来有空以后或许会尝试继续更新功能。
写的过程也遇见了不少bug,自己尝试着一步一步一一修复了这些bug(所以应该会有更简单的版本。。。)
window.onload = function (){var obtn = document.getElementsByTagName("a"); /* 获取页面中所有的按钮 */var res = document.getElementById("result");/* 获取页面中的显示框(屏幕) */var num,operation; /* 定义num用来保存输入的数据, operation用来保存当前的操作符 */var needClear = true;/* boolean类型 表示是否需要清屏 初始状态设置为true */var markOp = false;/* markOp是用来判断当前操作符里有没有操作,即operation里有没有数据 */var ifEnd = false;/* 用来判断本次运算是否结束 */for(var i=0;i<obtn.length;i++){obtn[i].onclick = function (){docal(this.innerText);}}/*这一段代码是给所有的按钮都添加一个点击事件,触发docal函数,docal函数里传入的值是按下按钮的对应数据*/function docal(btnValue){/* docal函数是判断按钮里的数据是什么,值不同时做不同的操作 */switch(btnValue){case "+":case "-":case "*":case "/":/*当按下按钮的值是 + - * / 这四个操作符里的一个时执行以下操作*/if(ifEnd == true ){/*判断运算是否结束 如果结束了执行以下操作*/num = parseFloat(res.innerText);operation = btnValue;needClear = true;markOp = true;/* 设置markOp 代表当前键入的是操作符 */ifEnd = false;/* 设置ifEnd 代表开始计算 */break;}else{if(markOp == true ){/*判断操作符里有没有操作 ,如果有执行以下操作*/operation = btnValue ;break;}else{if(num!=null){/*判断num里有没有数据 如果有执行以下操作*/res.innerText = cal(num,parseFloat(res.innerText),operation);/*当num里有数据的时候,那么就把num里的数据和当前屏幕里的数据进行计算 */}num = parseFloat(res.innerText);operation = btnValue ;needClear = true;markOp = true;break;}}case "C":/*当按下此按钮时,设置以下数据*/needClear = true;res.innerText = 0 ;num = null;operation = null;ifEnd = false;break;case "=":if(markOp == true) break; /* 加入这个if是为了避免连续点击多次=符号时出现的bug */res.innerText = cal(num,parseFloat(res.innerText),operation);num = parseFloat(res.innerText);needClear = true;markOp = true;/* “=” 符号也算入markOp */operation = null;ifEnd = true;/*代表计算结束 */break;/*剩下的情况,即键入的是数字时 */default:markOp = false;/* 设置markOp为false 说明当前键入的不是操作符 */if(needClear == true){res.innerText = btnValue;needClear = false;}else{res.innerText += btnValue ; }break;}}function cal(n1,n2,op){/*cal是用于计算的函数*/switch(op){case "+":return n1 + n2;break;case "-":return n1 - n2;break;case "*":return n1 * n2;break;case "/":return n1 / n2;break;}}}
阅读全文
1 0
- JS实现计算器(简易版)_作业1
- js实现简易计算器
- js实现简易计算器
- 用js实现简易计算器
- js css 实现简易计算器
- js实现简易计算器功能
- js实现简易的计算器
- 用js实现简易计算器(只能实现加减乘除)
- JS版简易网页计算器
- 简易计算器 (C语言)作业
- Js与BootStrap实现简易计算器
- 简易计算器 (1)
- 简易版网页计算器js代码页面
- js简易计算器(自写)
- 简易的JS计算器
- Js简易计算器
- 简易js计算器
- js制作简易计算器
- 大型网站架构(一)瞬时响应:网站的高性能架构
- Parallels Desktop中删除已安装的系统软件
- Linux面试题
- 同步,异步,阻塞,非阻塞概念理解
- 人工智能与机器学习
- JS实现计算器(简易版)_作业1
- 回头再学Java系列-前言
- 【剑指offer】面试题16:数值的整数次方
- 5.同步互斥机制
- Socket 长连接 短连接 心跳 JAVA SOCKET编程
- DRBD详解
- 使用少量数据构建强大图像分类模型
- app自动化测试6--常用的api
- Scrapy爬虫局部Selector的选取办法