javascript实现简易计算器的代码


Posted in Javascript onMay 31, 2016

今天闲来无聊,想写点什么,突然想到用javascript写一个计算器。程序还存在很多的Bug,先在这里记录一下,以后慢慢更正。

javascript实现简易计算器的代码

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript实现简易计算器的代码_三水点靠木</title>
<style type="text/css">
input{
width:30px;
height:20px;
text-align:center;
}
#tbCalculator td
{
text-align:center;
vertical-align:middle;
}

</style>

<script type="text/javascript">

var result; //保存点击运算符之前输入框中的数值
var operator; //保存运算符
var isPressEqualsKey = false; //记录是否按下”=“键

//数字键事件
function connectionDigital(control)
{
var txt = document.getElementById('txtScream');
if(isPressEqualsKey)
{ 
txt.value = ""; //已进行过计算,则清空数值输入框重新开始
isPressEqualsKey = false;
}
//数值输入已经存在小数点,则不允许再输入小数点
if(txt.value.indexOf('.') > -1 && control.value == '.')
return false;
txt.value += control.value; //将控件值赋给数值输入框中
}

//退格键事件
function backspace()
{
var txt = document.getElementById('txtScream');
txt.value = txt.value.substring(0,txt.value.length - 1);
}

//ce键事件:清空数字输入框
function clearAll()
{
document.getElementById('txtScream').value = "";
result = "";
operator = "";
}

// +、-、*、/ 事件
function calculation(control)
{
//将运算符保存入全局变量中
operator = control.value; 
var txt = document.getElementById('txtScream');
if(txt.value == "")return false; //数值输入框中没有数字,则不能输入运算符
//将数值输入框中的值保存到计算表达式中
result = txt.value; 
//清空输入框,以待输入操作值
txt.value = ""; 
}

//计算结果
function getResult()
{
var opValue;
//计算表达式中存在运算符
var sourseValue = parseFloat(result);
var txt = document.getElementById('txtScream');
if(operator == '*')
opValue = sourseValue * parseFloat(txt.value);
else if(operator == '/')
opValue = sourseValue / parseFloat(txt.value);
else if(operator == '+')
opValue = sourseValue + parseFloat(txt.value);
else if(operator == '-')
opValue = sourseValue - parseFloat(txt.value);

txt.value = opValue;
isPressEqualsKey = true;
result = "";
opValue = "";
}

</script>
</head>

<body>

<table id="tbCalculator" width="200" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#0066FF">
<tr>
<td height="30" colspan="4" align="center">
<input type="text" name="txtScream" id="txtScream" style="width:180px; border-style:none; text-align:right;" readonly="readonly" /> </td>
</tr>
<tr>
<td height="30" colspan="2">
<input type="button" name="btnCE" id="btnCE" value="C E" style="width:80px;" align="right"; onclick="clearAll();" /></td>
<td height="30" colspan="2">
<input type="button" name="btn10" id="btn10" value="Backspace" style="width:80px;" align="right"; onclick="backspace();" /></td>
</tr>
<tr>
<td height="30"><input type="button" name="btn7" id="btn7" value="7" onclick="connectionDigital(this);" /></td>
<td><input type="button" name="btn8" id="btn8" value="8" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btn9" id="btn9" value="9" onclick="connectionDigital(this);" /></td>
<td><input type="button" name="btn6" id="btn6" value="/" onclick="calculation(this);" /></td>
</tr>
<tr>
<td height="30">
<input type="button" name="btn4" id="btn4" value="4" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btn5" id="btn5" value="5" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btn6" id="btn6" value="6" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btn13" id="btn13" value="*" onclick="calculation(this);" /></td>
</tr>
<tr>
<td height="30">
<input type="button" name="btn1" id="btn1" value="1" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btn2" id="btn2" value="2" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btn3" id="btn3" value="3" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btn18" id="btn18" value="-" onclick="calculation(this);" /></td>
</tr>
<tr>
<td height="30"><input type="button" name="btn0" id="btn0" value="0" onclick="connectionDigital(this);"/></td>
<td><input type="button" name="btndot" id="btndot" value="." onclick="connectionDigital(this);" /></td>
<td><input name="btn22" type="button" id="btn22" value="=" onclick="getResult();" /></td>
<td><input type="button" name="btn23" id="btn23" value="+" onclick="calculation(this);" /></td>
</tr>
</table>
</body>
</html>

以上这篇javascript实现简易计算器的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 跨域访问解决方案
Feb 14 Javascript
超越Jquery_01_isPlainObject分析与重构
Oct 20 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
Nov 18 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
谷歌Chrome浏览器扩展程序开发小记
Jan 06 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
apicloud拉起小程序并传递参数的方法示例
Nov 21 Javascript
laypage+SpringMVC实现后端分页
Jul 27 Javascript
小程序外卖订单界面的示例代码
Dec 30 Javascript
jQuery实现动态操作table行
Nov 23 jQuery
javascript实现任务栏消息提示的简单实例
May 31 #Javascript
SWFUpload多文件上传及文件个数限制的方法
May 31 #Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 #Javascript
javascript事件模型介绍
May 31 #Javascript
使用JavaScript实现弹出层效果的简单实例
May 31 #Javascript
javascript事件处理模型实例说明
May 31 #Javascript
jQuery基础知识点总结(必看)
May 31 #Javascript
You might like
PHP 选项及相关信息函数库
2006/12/04 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
js 操作css实现代码
2009/06/11 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
jquery处理json对象
2014/11/03 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
python deque模块简单使用代码实例
2020/03/12 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
中专毕业自我鉴定
2013/10/16 职场文书
房地产项目建议书
2014/03/12 职场文书
个人承诺书
2014/03/26 职场文书
委托书模板
2014/04/04 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript