5-13、简易计算器

最容易想到的方式:
//html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
  <title>Document</title>
</head>
<style>
  div{margin-top: 200px;}
  p {text-align: center;}
  input{ width:250px;height: 30px;font-size: 27px;}
  button{width:60px;height: 40px; margin-left: 20px;margin-top: 30px;font-size: 25px; }
  span{font-size: 25px;}
</style>
<body>
  <div>
    <p>
      <input type="text" name="" id="num1" >
      <span id="fuhao">+</span>
      <input type="text" name="" id="num2" >
      <span>=</span>
      <span id="jieguo"></span>
    </p>
    <p>
      <button id="jia">+</button>
      <button id="jian">-</button>
      <button id="cheng">×</button>
      <button id="chu">÷</button>
    </p>
  </div>
</body>
</html>
<script src="./js/jsq.js"></script>
//js
var num1 = document.getElementById("num1");
var num2 = document.getElementById("num2");
var jia = document.getElementById("jia");
var jian = document.getElementById("jian");
var jian = document.getElementById("jian");
var chu = document.getElementById("chu");
var fuhao = document.getElementById("fuhao");
var jieguo = document.getElementById("jieguo");

jia.addEventListener("click",function(){
  fuhao.innerHTML = this.innerHTML;
   /**在这里注意 num1.value被认定为了字符串,被连接 1+1=11,
   所以需要在前面加上一个+,将其强制转换成数字**/
 jieguo.innerHTML = +num1.value + +num2.value;
});
jian.addEventListener("click",function(){
  fuhao.innerHTML = this.innerHTML;
  jieguo.innerHTML = num1.value - num2.value;
});
cheng.addEventListener("click",function(){
  fuhao.innerHTML = this.innerHTML;
  jieguo.innerHTML = num1.value * num2.value;
});
chu.addEventListener("click",function(){
  fuhao.innerHTML = this.innerHTML;
  jieguo.innerHTML = num1.value / num2.value;
});
第一次优化:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
  div{margin-top: 200px;}
  p {text-align: center;}
  input[type="text"]{width:250px;height: 30px;font-size: 27px;}
  input[type="button"]{ width:60px;height: 40px;margin-left: 20px;margin-top: 30px;font-size: 25px;}
  span{ font-size: 25px;}
</style>
<body>
  <div id="box">
    <p>
      <input type="text" name="" id="num1" >
      <span id="fuhao">+</span>
      <input type="text" name="" id="num2" >
      <span>=</span>
      <span id="jieguo"></span>
    </p>
    <p>
      <input type="button" value="+" class="btn">
      <input type="button" value="-" class="btn">
      <input type="button" value="×" class="btn">
      <input type="button" value="÷" class="btn">
    </p>
  </div>
</body>
</html>
<script src="./js/jsq.js"></script>
var box = document.getElementById("box");
var num1 = document.getElementById("num1");
var num2 = document.getElementById("num2");
var fuhao = document.getElementById("fuhao");
var jieguo = document.getElementById("jieguo");
var btn = box.querySelectorAll(".btn");

btn[0].addEventListener("click", add);
btn[1].addEventListener("click",sub);
btn[2].addEventListener("click",mul);
btn[3].addEventListener("click",divi);
function add(){
  fuhao.innerHTML = this.value;
 jieguo.innerHTML = +num1.value + +num2.value;
}
function sub(){
  fuhao.innerHTML = this.value;
  jieguo.innerHTML = num1.value - num2.value;
}
function mul(){
  fuhao.innerHTML = this.value;
  jieguo.innerHTML = num1.value * num2.value;
}
function divi(){
  fuhao.innerHTML = this.value;
  jieguo.innerHTML = num1.value / num2.value;
}
第二次优化
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
  div{margin-top: 200px;}
  p {text-align: center;}
  input[type="text"]{width:250px;height: 30px;font-size: 27px;}
  input[type="button"]{ width:60px;height: 40px;margin-left: 20px;margin-top: 30px;font-size: 25px;}
  span{ font-size: 25px;}
</style>
<body>
  <div id="box">
    <p>
      <input type="text" name="" id="num1" >
      <span id="fuhao">+</span>
      <input type="text" name="" id="num2" >
      <span>=</span>
      <span id="jieguo"></span>
    </p>
    <p>
      <input type="button" value="+" class="btn" title="add">
      <input type="button" value="-" class="btn" title="sub">
      <input type="button" value="×" class="btn" title="mul">
      <input type="button" value="÷" class="btn" title="divi">
    </p>
  </div>
</body>
</html>
<script src="./js/jsq.js"></script>
var box = document.getElementById("box");
var num1 = document.getElementById("num1");
var num2 = document.getElementById("num2");
var fuhao = document.getElementById("fuhao");
var jieguo = document.getElementById("jieguo");
var btn = box.querySelectorAll(".btn");

for(var i=0;i<btn.length;i++){
  btn[i].onclick = function(){
    switch(this.title){
      case "add" : add(); break;
      case "sub" : sub(); break;
      case "mul" : mul(); break;
      case "divi" : divi(); break;
    }
  }

}
function add(){
  fuhao.innerHTML = "+";
 jieguo.innerHTML = +num1.value + +num2.value;
}
function sub(){
  fuhao.innerHTML = "-";
  jieguo.innerHTML = num1.value - num2.value;
}
function mul(){
  fuhao.innerHTML = "×";
  jieguo.innerHTML = num1.value * num2.value;
}
function divi(){
  fuhao.innerHTML = "÷";
  jieguo.innerHTML = num1.value / num2.value;
}
第三次优化:
第四次优化:

var过多,全局属性过多,可以一个根var,然后把其他的加到他的属性上去,避免全局属性过多造成的内存占用。在这里插入图片描述
这样直接写函数调用不太方便,容易混乱,直接打包进一个方法里去,规整一下在这里插入图片描述

第五次优化:

OCP原则 :开放与封闭原则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值