广告位联系
返回顶部
分享到

JS实现简易计算器代码

JavaScript 来源:互联网搜集 作者:秩名 发布时间:2020-02-14 12:54:02 人浏览
摘要

用JS实现简易计算器,供大家参考,具体内容如下: 首先创建结构和样式 !DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 meta name=viewport content=width=device-width, initial-scale=1.0 titleDocument/title style body{ margin:0; padding:0; backgr

用JS实现简易计算器,供大家参考,具体内容如下:

首先创建结构和样式
 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body{
      margin:0;
      padding:0;
      background-color: #abcdef;
    }
    .cal{
      width:560px;
      height:100px;
      margin:0 auto;
      padding-top:300px;
    }
  </style>
</head>
<body>
 
  <div class="cal">
    <p>
      <input type="text" class="num1" value="1">
      <span class="sign">+</span>
      <input type="text" class="num2" value="1">
      <span>=</span>
      <span class="res">2</span>
    </p>
    <p>
      <input type="button" value="+">
      <input type="button" value="-">
      <input type="button" value="*">
      <input type="button" value="/">
    </p>      
  </div>
<script>
 
 
</script>
 
</body>
</html>

然后添加Java script

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body{
      margin:0;
      padding:0;
      background-color: #abcdef;
    }
    .cal{
      width:560px;
      height:100px;
      margin:0 auto;
      padding-top:300px;
    }
  </style>
</head>
<body>
 
  <div class="cal">
    <p>
      <input type="text" class="num1" value="1">
      <span class="sign">+</span>
      <input type="text" class="num2" value="1">
      <span>=</span>
      <span class="res">2</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>
 
<script>
  var cal=document.querySelector(".cal");
  var num1=cal.querySelector(".num1");
  var num2=cal.querySelector(".num2");
  var sign=cal.querySelector(".sign");
  var res=cal.querySelector(".res");
 
  var btns=cal.querySelectorAll(".btn");
 
  btns[0].onclick=add;
  btns[1].onclick=subtract;
  btns[2].onclick=multiply;
  btns[3].onclick=divide;
 
  function add(){
    sign.innerHTML="+";
    //由于DOM获取到的值都是字符串形式,因此进行操作时需要先转为number类型
    res.innerHTML=Number(num1.value)+Number(num2.value);
  }
  function subtract(){
    sign.innerHTML="-";
    res.innerHTML=Number(num1.value)-Number(num2.value);
  }
  function multiply(){
    sign.innerHTML="*";
    res.innerHTML=Number(num1.value)*Number(num2.value);  
  }
  function divide(){
    sign.innerHTML="/";
    res.innerHTML=Number(num1.value)/Number(num2.value);  
  }
</script>
 
</body>
</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>
  <style>
    body{
      margin:0;
      padding:0;
      background-color: #abcdef;
    }
    .cal{
      width:560px;
      height:100px;
      margin:0 auto;
      padding-top:300px;
    }
  </style>
</head>
<body>
 
  <div class="cal">
    <p>
      <input type="text" class="num1" value="1">
      <span class="sign">+</span>
      <input type="text" class="num2" value="1">
      <span>=</span>
      <span class="res">2</span>
    </p>
    <p>
      <input type="button" value="+" class="btn" title="add">
      <input type="button" value="-" class="btn" title="subtract">
      <input type="button" value="*" class="btn" title="multiply">
      <input type="button" value="/" class="btn" title="divide">
      <input type="button" value="%" class="btn" title="mod">
    </p>      
  </div>
 
<script>
  var cal=document.querySelector(".cal");
  var num1=cal.querySelector(".num1");
  var num2=cal.querySelector(".num2");
  var sign=cal.querySelector(".sign");
  var res=cal.querySelector(".res");
 
  var btns=cal.querySelectorAll(".btn");
 
  //给每个按钮绑定事件
  for(var i=0;i<btns.length;i++){
    operate(i);
  }
 
  //运算函数
  function operate(i){
    var op=btns[i].value;//获取运算
    var opName=btns[i].title;//获取运算名
    //绑定事件
    btns[i].onclick=function(){
      sign.innerHTML=op;
      res.innerHTML=operation[opName](Number(num1.value),Number(num2.value));
    }
  }
 
  var operation={
    add:function(n1,n2){
      return n1+n2;
    },
    subtract:function(n1,n2){
      return n1-n2;
    },
    multiply:function(n1,n2){
      return n1*n2;
    },
    divide:function(n1,n2){
      return n1/n2;
    },
    //给一个新增运算的接口
    addOperation:function(name,fn){
      //如果该运算不存在
      if(!this.name){
        this[name]=fn;
      }
    }
  }
 
  //新增取余运算
  operation.addOperation("mod",function(n1,n2){
    return n1%n2;
  });
</script>
 
</body>
</html>

这样就圆满完成咯

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/qq_44758351/article/details/104297370?request_id=&utm_source=distribute.pc_feed.none-task
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计