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 相关文章推荐
arguments对象
Nov 20 Javascript
JavaScript 提升运行速度之循环篇 译文
Aug 15 Javascript
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
JavaScript异步回调的Promise模式封装实例
Jun 07 Javascript
React实现双向绑定示例代码
Sep 19 Javascript
jquery表单插件form使用方法详解
Jan 20 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
Vue入门之animate过渡动画效果
Apr 08 Javascript
JS forEach跳出循环2种实现方法
Jun 24 Javascript
详解vue中在父组件点击按钮触发子组件的事件
Nov 13 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
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数据采集的详解
2013/06/02 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
js常用代码段整理
2011/11/30 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python中super()函数简介及用法分享
2016/07/11 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python实现结构体代码实例
2020/02/10 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
药学专业大专生的自我评价
2013/12/12 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
新学期教师寄语
2014/04/02 职场文书
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server