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 相关文章推荐
js活用事件触发对象动作
Aug 10 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
Nov 19 Javascript
深入理解Javascript闭包 新手版
Dec 28 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
Jan 28 Javascript
深入浅析JavaScript的API设计原则
Jun 14 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
JavaScript解析机制与闭包原理实例详解
Mar 08 Javascript
解决layui的input独占一行的问题
Sep 10 Javascript
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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
javascript如何写热点图
2015/12/08 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
基于vue中的scoped坑点解说
2020/09/04 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
代码讲解Python对Windows服务进行监控
2018/02/11 Python
在python中安装basemap的教程
2018/09/20 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
学生周末长期请假条
2014/02/15 职场文书
公司年会开场白
2015/06/01 职场文书
小学英语课教学反思
2016/02/15 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
Python绘制分类图的方法
2021/04/20 Python
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python
Python 视频画质增强
2022/04/28 Python
讨论nginx location 顺序问题
2022/05/30 Servers