ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaScript:简单计算器的实现

2021-03-26 12:34:13  阅读:187  来源: 互联网

标签:numValue1 numValue2 JavaScript 点击 innerText 简单 var showNum 计算器


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			input {
				width: 500px;
				height: 70px;
				font-size: 45px;
				border: none;
			}

			tr {
				text-align: center;
				font-size: 40px;
				color: blue;
			}

			td:hover {
				cursor: pointer;
				background: skyblue;
			}
		</style>
	</head>
	<body>
		<div id="" align="center">
			<input type="" name="" value="0" disabled="disabled" id="showNum" />
			<table border="1" cellspacing="0" height="600px" width="500px">
				<tr>
					<td id="clear">C</td>
					<td id="del">退格</td>
					<td>%</td>
					<td class="ope">/</td>
				</tr>
				<tr>
					<td class="num">7</td>
					<td class="num">8</td>
					<td class="num">9</td>
					<td class="ope">*</td>
				</tr>
				<tr>
					<td class="num">4</td>
					<td class="num">5</td>
					<td class="num">6</td>
					<td class="ope">-</td>
				</tr>
				<tr>
					<td class="num">1</td>
					<td class="num">2</td>
					<td class="num">3</td>
					<td class="ope">+</td>
				</tr>
				<tr>
					<td colspan="2" class="num">0</td>

					<td class="num">.</td>
					<td id="result">=</td>
				</tr>
			</table>
		</div>

	</body>
</html>
<script type="text/javascript">
	//1.把数字和小数点归为一类  class="num"
	//2.把运算符归为一类 class=opr
	//3.等号,归零 退格 显示框  单独添加id
	//4.把所有要用的DOM对象获取出来
	//做运算:简单的运算,1+2=3  我们得定义三个变量 来保存这个三个数据 第一个数 第二个数 运算符
	var numValue1 = '';
	var numValue2 = '';
	var operator = '';

	var showNum = document.getElementById("showNum");
	var clear = document.getElementById("clear");
	var del = document.getElementById("del");
	var result = document.getElementById("result");

	//把所有的数字获取出来
	var nums = document.getElementsByClassName("num");
	//给所有的数字添加点击事件
	for (var i = 0; i < nums.length; i++) {
		nums[i].onclick = function() {
			//判断用户是否在点击小数点
			if (this.innerText == '.') {
				if (numValue1.indexOf(".") == -1 && numValue1.length >= 1) {
					//没有小数点
					//获取用户点击的数字
					numValue1 += this.innerText;
					//把用户点击的数字展示出来
					showNum.value = numValue1;
				} else {
					//
				}
			} else {
				//nums[i].innerText
				//showNum.value+=this.innerText;
				//获取用户点击的数字
				numValue1 += this.innerText;
				//把用户点击的数字展示出来
				showNum.value = numValue1;
			}
		}
	}


	//当用户点击了 运算符之后,把第一个数给第二个数,把第一个数清空,用来接收第二个数字

	//获取所有的运算符,绑定点击事件
	var opes = document.getElementsByClassName("ope");
	for (var i = 0; i < opes.length; i++) {
		opes[i].onclick = function() {
			//判断用户可能点=或四则
			if (numValue2 == '') {
				//alert(this.innerText);
				//保存用户点击的运算符
				//operator = this.innerText;
				//把第一个数给第二个数
				numValue2 = numValue1;
				//把第一个数清空,用来接收下一次用户的输入
				numValue1 = '';
			} else {
				//点=和或四则
				//operator = this.innerText;
				if (numValue1 != '') {
					funResult();
				}

			}


			//保存用户点击的运算符
			operator = this.innerText;

		}
	}


	//归零
	clear.onclick = function() {

		numValue1 = '';
		numValue2 = '';
		operator = '';
		showNum.value = '0';
	}

	//退格
	del.onclick = function() {
		if (numValue1.length > 1) {
			numValue1 = numValue1.substring(0, numValue1.length - 1);
			showNum.value = numValue1;
		} else if (numValue1.length == 1) {
			numValue1 = '';
			showNum.value = '0';
		}

	}

	//给等号绑定点击事件
	result.onclick = function() {
		//进行运算
		if (numValue2 != '') {
			funResult();
		}

	}

	//  numValue1='0';  numValue2='0';
	function funResult() {
		//转换类型
		var one = Number(numValue2);
		var two = Number(numValue1);
		var r = 0;
		switch (operator) {
			case '+':
				r = one + two;
				break
			case '-':
				r = one - two;
				break
			case '*':
				r = one * two;
				break
			case '/':
				if (two == 0) {
					alert("除数不能为0");
					numValue1 = '';
					numValue2 = '';
					operator = '';
					r = 0;
				} else {
					r = one / two;
				}


				break
		}
		//把上一次的结果算出来,赋值给numValue2
		numValue2 = r;
		把第一个数清空,用来接收下一次用户的输入
		numValue1 = '';
		showNum.value = numValue2.toFixed(5) * 1; //可以去掉无效的0
	}
</script>

效果如图:
在这里插入图片描述

标签:numValue1,numValue2,JavaScript,点击,innerText,简单,var,showNum,计算器
来源: https://blog.csdn.net/weixin_45631296/article/details/115235770

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有