JS制作简易计算器的实例代码


Posted in Javascript onJuly 04, 2020

做一个简易计算器,效果图片

JS制作简易计算器的实例代码

c表示清空,为一个空字符串

+/-表示该值为正还是负

%表示当前值/100

←表示退格,往前删除一个值

eval 函数是能够计算出字符串表达式或者语句的结果,把结果求出来。

代码如下

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
   #div1{
    margin:20px auto;
    width:420px;
    height:490px;
    background-color:#E8E8E8;
    border:1px solid #ccc;
    border-radius:5px;
    }
   .div2{
    width:410px;
    height:60px;
    border:1px solid #ccc;
    margin:5px auto;
    border-radius:5px;
    text-align:right;
    font-size:30px;
    background-color:white;
    padding-top:10px;
       } 
   
   .div3{
    width:410px;
    height:60px;
    margin:5px auto;
    float:left;
   }
   .div13{
    float:left;
    width:70px;
    height:60px;
    border:1px solid #ccc;
    background-color: ghostwhite;
    margin-left:8px;
    text-align:center;
    font-size:30px;
    color:deepskyblue;
    border-radius:5px;
    cursor:default;
    padding-top:10px;
    box-shadow:4px 3px 3px #CCCCCC;
    }
   .div133{width:160px;}
   .top{margin-top:10px;margin-left:10px;} 
   .color{color:black;}
   .top1{margin-top:20px;margin-left:10px;}
   .top2{margin-top:30px;margin-left:10px;}
   .top3{margin-top:40px ;margin-left:10px;}
   .div23{float:left;}
   .div33{float:left;}
  </style>
 </head>
 <body>
  <div id="div1">
   <div class="div2" id="input"><b>0</b></div>
   <div class="div3">
    <div class="div13" onclick="w(' ')"><b>C</b></div>
    <div class="div13"onclick="w('opposite')"><b>+/-</b></div>
    <div class="div13" onclick="w('percent')"><b>%</b></div>
    <div class="div13 div133" onclick="w('backspace')"><b>←</b></div>
   </div>
    <div class="div3">
     <div class="div13 top color" onclick="a('7')"><b>7</b></div>
     <div class="div13 top color" onclick="a('8')"><b>8</b></div>
     <div class="div13 top color" onclick="a('9')"><b>9</b></div>
     <div class="div13 top " onclick="a('+')"><b>+</b></div>
     <div class="div13 top " onclick="a('-')"><b>-</b></div>
     
    </div>
    <div class="div3">
     <div class="div13 top1 color" onclick="a('4')"><b>4</b></div>
     <div class="div13 top1 color"onclick="a('5')"><b>5</b></div>
     <div class="div13 top1 color" onclick="a('6')"><b>6</b></div>
     <div class="div13 top1" onclick="a('*')"><b>×</b></div>
     <div class="div13 top1" onclick="a('/')"><b>÷</b></div>
     </div>
     <div class="div3">
     <div class="div13 top2 color" onclick="a('1')"><b>1</b></div>
     <div class="div13 top2 color" onclick="a('2')"><b>2</b></div>
     <div class="div13 top2 color"onclick="a('3')"><b>3</b></div>
     <div class="div13 top2"onclick="w('pow')"><b>x<sup>2</sup></b></div>
     <div class="div13 top2" onclick="w('sqrt')"><b>√</b></div>
     </div>
     <div class="div3">
      <div class="div13 top3 color" onclick="a('0')"><b>0</b></div>
      <div class="div13 top3"onclick="a('.')"><b>.</b></div>
      <div class="div13 top3"onclick="e('=')"><b>=</b></div>
     </div>
     
     </div>
    <script>
     input=document.getElementById("input");
    s="";
     function a(v)
     {
     s=s+v;
     input.innerHTML=s; 
     }
    function e(v)
     {
     input.innerHTML=eval(s);
     }
    
    function w(type)
     { 
     switch(type)
     { case ' ':s='';break;
      case 'opposite':s=-s;break;
      case 'percent':s=s/100;break;
      case 'pow':s=Math.pow(s,2);break;
      case 'sqrt':s=Math.sqrt(s);break;
      case 'backspace':s=s.substr(s,s.length-1);// case  'backspace':s=s.substring(0,s.length-1);
      }
      input.innerHTML=s; 
      } 
      
     
     
   
     
     
     
    </script>
   
   
   
  
 </body>
</html>

这里我本来是采用的substring这个函数的,但是在计算的时候,当只留下一个值的时候,按←的时候就不起作用,但是把substring改成substr的时候就能清除的了,原因我觉得应该是这样:s=s.substring(s,s.length-1);当只剩下一个值的时候,假设s值为7,substring中的第一个参数为是,表示中国字符串的首地址,就是0,第二个参数为0,怎么取,但是换成这样是可以的s=s.substring(0,s.length-1);,但是用s=s.substr(s,s.length-1);当只剩下一个值的时候是可以清除掉的,我想应该是当第二个参数是取得个数为0的时候,就把空字符串赋给s了吧。

以上就是JS制作简易计算器的实例代码的详细内容,更多关于JS制作简易计算器的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
JavaScript事件列表解说
Dec 22 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
Apr 13 Javascript
JS中的eval 为什么加括号
Apr 13 Javascript
动态加载js文件简单示例
Apr 21 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
JS扩展String.prototype.format字符串拼接的功能
Mar 09 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
vue+ESLint 配置保存 自动格式化代码
Mar 17 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
Aug 03 Javascript
微信小程序实现聊天室
Aug 21 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
基于原生js实现九宫格算法代码实例
Jul 03 #Javascript
JavaScript DOM常用操作代码汇总
Jul 03 #Javascript
JavaScript缺少insertAfter解决方案
Jul 03 #Javascript
原生javascript如何实现共享onload事件
Jul 03 #Javascript
Vue如何实现监听组件原生事件
Jul 03 #Javascript
如何在node环境实现“get数据解析”代码实例
Jul 03 #Javascript
JavaScrip如果基于url实现图片下载
Jul 03 #Javascript
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
PHP类的反射用法实例
2014/11/03 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
详解React 条件渲染
2020/07/08 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
python爬取内容存入Excel实例
2019/02/20 Python
基于Python正确读取资源文件
2020/09/14 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
司机岗位职责
2013/11/15 职场文书
执行总经理岗位职责
2014/02/03 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
应急管理培训方案
2014/06/12 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
红旗渠导游词
2015/02/09 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android