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显示随机图像或引用
Apr 21 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
js操纵dom生成下拉列表框的方法
Feb 24 Javascript
jquery的each方法使用示例分享
Mar 25 Javascript
创建js对象和js类的方法汇总
Dec 24 Javascript
浅谈javascript获取元素transform参数
Jul 24 Javascript
微信小程序之页面拦截器的示例代码
Sep 07 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
Koa2微信公众号开发之消息管理
May 16 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
小程序wx.getUserProfile接口的具体使用
Jun 02 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
php 分页函数multi() discuz
2009/06/21 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
python中模块的__all__属性详解
2017/10/26 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
Europcar比利时:租车
2019/08/26 全球购物
网站编辑求职信
2013/10/17 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL