简易js代码实现计算器操作


Posted in Javascript onApril 15, 2013
<html>

<head>

<title>JS版计算器</title>

<link rel="stylesheet" type="text/css" href="">

<meta http-equiv="content-type" content="text/html;charset=utf-8">

<!--js代码可以放置在任意位置,按照先后顺序依次执行 一般放在head标签之间-->

<script type="text/javascript">
    /* 定义一个Calculator类*/

    function Calculator(){

        

        this.jisuan=function(num1,num2,oper){

            var res=0;

            switch(oper){

                case "+":

                    res=num1+num2;

                    break;

                case "-":

                    res=num1-num2;

                    break;

                case "*":

                    res=num1*num2;

                    break;

                case "/":

                    res=num1/num2;

                    break;

            }

            return res;

        }

    }

    //创建对象

    var calculator=new Calculator();
    /*定义全局变量*/

    var val=0; //放置输入的值

    var xval=0;//保存转换Number类型的值

    var temp=0; //保存第一次输入的值    

    var oper="";//保存输入的操作符
    /*获取输入数字*/

    function inputEvent(e){

    

        val=e.value

        var xsval=document.getElementById("inp1");        

        xsval.value+=val; //连续输入数字(String类型)

        //转换Number类型

        xval=parseFloat(xsval.value);

        

    }
    /*获取第一行的数据*/

    function inputPCB(e){

        //window.alert(e.value);

        var xsval=document.getElementById("inp1");

        if(e.value=="Clear"){

            xsval.value="";

        }else if(e.value=="Back"){

            /*这个功能还没有实现,有兴趣的朋友可以自己做一做*/
        }else if(e.value=="POWER"){

            //计算平方

            xsval.value=Math.pow(xsval.value,2);            

        }

    }
    /*输入操作符*/

    function inputOper(e){
        oper=e.value;

        //window.alert(typeof oper);

        //oper=oper.substr(0);

        if (e.value=="+"){

            var xsval=document.getElementById("inp1");

            //保存上次计算结果,并对字符串进行转换Number类型

            temp=parseFloat(xsval.value);

            //第一次输入的值设置为空

            xsval.value="";                        

        }else if(e.value=="-"){

            var xsval=document.getElementById("inp1");

            temp=parseFloat(xsval.value);

            xsval.value="";

        }else if(e.value=="*"){

            var xsval=document.getElementById("inp1");

            temp=parseFloat(xsval.value);

            xsval.value="";

        }else if(e.value=="/"){

            var xsval=document.getElementById("inp1");

            temp=parseFloat(xsval.value);

            xsval.value="";

        }

    }
    /*计算结果*/

    function inputEquel(e){
        var xsval=document.getElementById("inp1");        

        if(e.value=="="){

            //window.alert(xval);

            //调用对象方法

            xsval.value=calculator.jisuan(temp,xval,oper);

        }

    }

</script>

<!--css 样式-->

<style>

    input{

        width:60px;

    }

    #inp1{

        width:280px;

        text-align:right;

    }

</style>

</head>

<body>

    <table border="1">

        <!--显示结果行-->

        <tr><td colspan="4"><input id="inp1" type="text" value="" name="xianshi"/></td></tr>

        

        <!--第一行-->

        <tr><td><input type="button" value="POWER" onclick="inputPCB(this)"/></td><td><input type="button" value="Clear" onclick="inputPCB(this)"/></td><td><input type="button" value="Back"onclick="inputPCB(this)"/></td><td></td></tr>

        <!--第二行-->

        <tr><td><input type="button" value="1" onclick="inputEvent(this)"/></td><td><input type="button" value="2" onclick="inputEvent(this)"/></td><td><input type="button"value="3" onclick="inputEvent(this)"/></td><td><input type="button" value="4" onclick="inputEvent(this)"/></td></tr>

        <!--第三行-->

        <tr><td><input type="button" value="5" onclick="inputEvent(this)"/></td><td><input type="button" value="6" onclick="inputEvent(this)"/></td><td><input type="button"value="7" onclick="inputEvent(this)"/></td><td><input type="button" value="8" onclick="inputEvent(this)"/></td></tr>    

        <!--第四行-->

        <tr><td><input type="button" value="9" onclick="inputEvent(this)"/></td><td><input type="button" value="0" onclick="inputEvent(this)"/></td><td><input type="button"value="." onclick="inputEvent(this)"/></td><td><input type="button" value="=" onclick="inputEquel(this)"/></td></tr>

        <!--第五行-->

        <tr><td><input type="button" value="+" onclick="inputOper(this)"/></td><td><input type="button" value="-" onclick="inputOper(this)"/></td><td><input type="button"value="*" onclick="inputOper(this)"/></td><td><input type="button" value="/" onclick="inputOper(this)"/></td></tr>    

    

    </table>

</body>

</html>

简易js代码实现计算器操作

Javascript 相关文章推荐
jQuery分组选择器用法实例
Dec 23 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
Nov 17 Javascript
jquery获取复选框的值的简单实例
May 26 Javascript
jquery.validate使用详解
Jun 02 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
Oct 01 Javascript
Vue.js路由组件vue-router使用方法详解
Dec 02 Javascript
Bootstrap实现各种进度条样式详解
Apr 13 Javascript
详解原生js实现offset方法
Jun 15 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
Jul 04 Javascript
解决微信二次分享不显示摘要和图片的问题
Aug 18 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 Javascript
JS中 用户登录系统的解决办法
Apr 15 #Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 #Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 #Javascript
jquery获得页面元素的坐标值实现思路及代码
Apr 15 #Javascript
Extjs优化(二)Form表单提交通用实现
Apr 15 #Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
Apr 15 #Javascript
Extjs优化(一)删除冗余代码提高运行速度
Apr 15 #Javascript
You might like
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
php命令行模式代码实例详解
2021/02/26 PHP
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
Jquery实现顶部弹出框特效
2015/08/08 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python距离测量的方法
2018/03/06 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
python opencv实现运动检测
2018/07/10 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
wxPython多个窗口的基本结构
2019/11/19 Python
django下创建多个app并设置urls方法
2020/08/02 Python
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
班干部竞选演讲稿
2014/04/24 职场文书
承诺书格式
2014/06/03 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
教师节倡议书2015
2015/04/27 职场文书
公司联欢会主持词
2015/07/04 职场文书
婚礼答谢词范文
2015/09/29 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python