一个适合新手练习的js计算器

今天是20190624,我上网查询eval用法时偶遇一篇文章,特此分享!
原文:https://blog.csdn.net/sinat_34880701/article/details/79044603
下面是计算机预览图
在这里插入图片描述
下面是各模块代码

//这是css代码
<style>
html,body{width:100%;margin:0;padding:0;font-family:"微软雅黑";
}
.inputShow{width:100%;height:6rem;background-color:#222222;color:#FFFFFF;word-wrap:break-word;
	overflow-y:scroll;font-size:21px;letter-spacing:2px;margin-top:0.5rem;
}
#ResultShow{padding-top:1.5rem;margin-right:0.5rem;margin-left:0.5rem;height:2rem;
	line-height:2rem;font-size: 26px;font-weight:bold;color:#EE9A00;overflow:hidden;
}
.btnItem{width:60px;height:60px;line-height:60px;border-radius:100%;background-color:#222222;
	text-align:center;font-size:21px;color:#FFFFFF;margin:5px;
}
.btnItem:active{
	opacity:0.7;
}
.numItem{margin-top:30px;padding-bottom:25px;width:100%;
	max-width:280px;display:flex;flex-wrap:wrap;
}
</style>
//主页面代码
<body>
<div style="width:95%;max-width: 360px;background-color:#EAEAEA;margin:auto;">
	<div class="inputShow"><div id="inputtext" style="padding:1rem;">0</div></div>
	<center>
		<div id="ResultShow"></div>
		<div class="numItem">
			<div class="btnItem" onclick="clearinput()">AC</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">(</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">)</div>
			<div class="btnItem" style="background-color:#EE9A00" onclick="addinput(this.innerHTML)">+</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">1</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">2</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">3</div>
			<div class="btnItem" style="background-color:#EE9A00" onclick="addinput(this.innerHTML)">-</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">4</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">5</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">6</div>
			<div class="btnItem" style="background-color:#EE9A00" onclick="addinput(this.innerHTML)">×</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">7</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">8</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">9</div>
			<div class="btnItem" style="background-color:#EE9A00" onclick="addinput(this.innerHTML)">÷</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">0</div>
			<div class="btnItem" onclick="addinput(this.innerHTML)">.</div>
			<div class="btnItem" style="background-color:#CD3333;" onclick="deleteinput()"></div>	
			<div class="btnItem" style="background-color:#008B45;" onclick="showresult()">=</div>
		</div>
	</center>
<div>
</body>
//这是js代码
<script>
	var inputtext = "";
	var textresult = "";

	function addinput(e){
		if(e == "÷"){e = "/"}else if(e == "×"){e = "*"}
		if(textresult == ""){
			if(e == "." && inputtext == ""){
				inputtext = "0."
			}else{
				inputtext += e;
			}
		}else{
			if( e=="+"||e=="-"||e=="*"||e=="/" && e!="." ){	//如果输入的是运算符,取之前的运算结果,继续计算
				//var text = textresult
				inputtext = textresult + e;
				textresult = "";
			}else{	//如果不是运算符,结果置空,重新输入
				textresult = "";
				if(e == "."){
					inputtext = "0."
				}else{
					inputtext = e;
				}
			}
		}
		document.getElementById("inputtext").innerHTML = inputtext;
	};

	function deleteinput(){
		if(inputtext == ""){
			document.getElementById("inputtext").innerHTML = "0";
		}else{
			inputtext = inputtext.substring( 0,inputtext.length-1 )
			document.getElementById("inputtext").innerHTML = inputtext;
		}
	};

	function showresult(){
		if(inputtext == ""){
			document.getElementById("ResultShow").innerHTML = "0";
		}else{
			try{
				textresult = eval(inputtext);
				if(textresult == "Infinity"){
					document.getElementById("ResultShow").innerHTML = "输入有误";
					textresult = "";
				}else{
					textresult = parseFloat(textresult);
					document.getElementById("ResultShow").innerHTML = textresult;	//超大数字使用科学计数法
				};
			}catch(err){
				document.getElementById("ResultShow").innerHTML = "输入有误";
				textresult = "";
			}
		}
	};

	function clearinput(){
		inputtext = "";
		textresult = "";
		document.getElementById("inputtext").innerHTML="0";
		document.getElementById("ResultShow").innerHTML =textresult;
	};

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值