JavaScript制作简易计算器(不用eval)

发布时间 - 2026-01-10 22:52:09    点击率:

本文实例为大家分享了js制作简易计算器的具体代码,供大家参考,具体内容如下

<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style type="text/css">
  * {
   padding: 0;
   margin: 0;
  }
  li {
   list-style: none;
  }
  body {
   background: #940032;
  }

  #counter {
   width: 500px;
   height: 420px;
   background: #939;
   margin: 50px auto 0;
   position: relative;
  }

  #counter h2 {
   line-height: 42px;
   padding-left: 15px;
   font-size: 14px;
   font-family: arial;
   color: #ff3333;
  }

  #counter a {
   font-weight: normal;
   text-decoration: none;
   color: #ff3333;
  }

  #counter a:hover {
   text-decoration: underline;
  }

  #bg {
   width: 280px;
   height: 200px;
   border: 3px solid #680023;
   background: #990033;
   filter: alpha(opacity=80);
   opacity: 0.8;
   position: absolute;
   left: 50%;
   top: 115px;
   margin-left: -141px;
  }

  #counter_content {
   width: 250px;
   position: absolute;
   top: 130px;
   left: 130px;
   z-index: 1;
  }

  #counter_content h3 {
   margin-bottom: 10px;
  }

  #counter_content h3 input {
   border: none;
   width: 223px;
   height: 30px;
   line-height: 30px;
   padding: 0 10px;
   background: url(img/ico.png) no-repeat;
   text-align: right;
   color: #333;
   font-size: 14px;
   font-weight: bold;
  }

  #counter_content div {
   width: 250px;
  }

  #counter_content input {
   width: 60px;
   height: 30px;
   line-height: 30px;
   float: left;
   background: url(img/ico.png) no-repeat -303px 0;
   text-align: center;
   color: #fff;
   cursor: pointer;
   margin: 0 1px 4px 0;
   border: 0;
  }

  #counter_content div > input:hover {
   background: url(img/ico.png) no-repeat -243px 0;
  }

  #counter p {
   width: 500px;
   position: absolute;
   bottom: 20px;
   left: 0;
   color: #ff3333;
   text-align: center;
   font-size: 12px;
  }
 </style>
</head>
<body>
<div id="counter">
 <h2>简易计算</h2>
 <div id="counter_content">
  <h3><input id="input1" type="text" value="0"/></h3>
  <div id="div1">
   <input type="button" value="7" onclick="kick('7')"/>
   <input type="button" value="8" onclick="kick('8')"/>
   <input type="button" value="9" onclick="kick('9')"/>
   <input type="button" value="+" onclick="kick('+')"/>
   <input type="button" value="4" onclick="kick('4')"/>
   <input type="button" value="5" onclick="kick('5')"/>
   <input type="button" value="6" onclick="kick('6')"/>
   <input type="button" value="-" onclick="kick('-')"/>
   <input type="button" value="1" onclick="kick('1')"/>
   <input type="button" value="2" onclick="kick('2')"/>
   <input type="button" value="3" onclick="kick('3')"/>
   <input type="button" value="*" onclick="kick('*')"/>
   <input type="button" value="0" onclick="kick('0')"/>
   <input type="button" value="C" onclick="kick('C')"/>
   <input type="button" value="=" onclick="kick('=')"/>
   <input type="button" value="/" onclick="kick('/')"/>
  </div>
 </div>
</div>
</body>
<script>
 var showInput = document.getElementById("input1");
 var isClear = false;
 var tempStr = "";
 var clacType = "";
 var isContinue = true;
 function kick(clickValue) {
  switch (clickValue) {
   case "=":
    if (tempStr != "" && clacType != "") {
     showInput.value = clac(tempStr, showInput.value, clacType);
     isContinue = false;
     clacType = "";
    }
    break;
   case "+":
   case "-":
   case "*":
   case "/":
    //如果预存的操作符不为空 表示表示连续操作
    if (clacType != "" && !isContinue) { //先执行计算
     tempStr = clac(tempStr, showInput.value, clacType);
     isClear = true;
     clacType = clickValue;
    } else {
     tempStr = showInput.value; //点击操作符之后 预存字符
     isClear = true;//表示点击了操作符
     clacType = clickValue;//预存操作符
    }
    isContinue = true;
    break;
   case "C":
    showInput.value = "0";
    isClear = false;
    tempStr = "";
    clacType = "";
    break;
   default://普通的数字按钮点击
    showInput.value = showInput.value == "0" ? "" : showInput.value;
    isContinue = false;
    if (isClear) {
     showInput.value = "";
     showInput.value += clickValue;
     isClear = false;
    } else {
     showInput.value += clickValue;
    }
    break;
  }
 }


 function clac(num1, num2, type) {
  switch (type) {
   case "+":
    return Number(num1) + Number(num2);
   case "-":
    return Number(num1) - Number(num2);
   case "*":
    return Number(num1) * Number(num2);
   case "/":
    return Number(num1) / Number(num2);
   default:
    break;
  }
  }
 </script>

关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 计算器  # JavaScript简易计算器制作  # JS键盘版计算器的制作方法  # 原生JavaScript制作计算器  # 使用JSP制作一个超简单的网页计算器的实例分享  # node.js+express制作网页计算器  # JS制作简易计算器的实例代码  # 等你  # 大家分享  # 更多精彩  # 具体内容  # 请查看  # 大家多多  # 为空  # font  # left  # arial  # family  # size  # auto  # position  # line  # relative  # color  # solid  # border  # alpha 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  魔方云NAT建站如何实现端口转发?  详解jQuery中的事件  如何选择PHP开源工具快速搭建网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Bootstrap CSS布局之列表  高性能网站服务器配置指南:安全稳定与高效建站核心方案  JS碰撞运动实现方法详解  javascript中闭包概念与用法深入理解  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  jquery插件bootstrapValidator表单验证详解  使用spring连接及操作mongodb3.0实例  开心动漫网站制作软件下载,十分开心动画为何停播?  如何在七牛云存储上搭建网站并设置自定义域名?  PHP正则匹配日期和时间(时间戳转换)的实例代码  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  Python文件操作最佳实践_稳定性说明【指导】  无锡营销型网站制作公司,无锡网选车牌流程?  Python文件流缓冲机制_IO性能解析【教程】  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Java类加载基本过程详细介绍  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何用y主机助手快速搭建网站?  怎么用AI帮你为初创公司进行市场定位分析?  教你用AI将一段旋律扩展成一首完整的曲子  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel定时任务怎么设置_Laravel Crontab调度器配置  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel Fortify是什么,和Jetstream有什么关系  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  ,网页ppt怎么弄成自己的ppt?  高端网站建设与定制开发一站式解决方案 中企动力  js实现获取鼠标当前的位置  Python图片处理进阶教程_Pillow滤镜与图像增强  如何基于云服务器快速搭建网站及云盘系统?  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  WordPress 子目录安装中正确处理脚本路径的完整指南  免费视频制作网站,更新又快又好的免费电影网站?