简易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之超简单的div显示和隐藏特效demo(分享)
Jul 09 Javascript
jQuery读取和设定KindEditor值的方法
Nov 22 Javascript
js传中文参数controller里获取参数乱码问题解决方法
Jan 03 Javascript
JS实现超精简响应鼠标显示二级菜单代码
Sep 12 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 Javascript
基于jQuery日历插件制作日历
Mar 11 Javascript
js添加事件的通用方法推荐
May 15 Javascript
AngularJs bootstrap详解及示例代码
Sep 01 Javascript
jQuery实现获取h1-h6标题元素值的方法
Mar 06 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
Nov 09 Javascript
vue 实现微信浮标效果
Sep 01 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来处理多个提交任务
2006/10/09 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
javascript连续赋值问题
2015/07/08 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
Python中turtle作图示例
2017/11/15 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python实现证件照换底功能
2019/08/20 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
计算s=f(f(-1.4))的值
2014/05/06 面试题
商务专员岗位职责
2013/11/23 职场文书
办公室内勤工作职责
2013/12/11 职场文书
大型晚会策划方案
2014/02/06 职场文书
白酒营销策划方案
2014/08/17 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书