简易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 相关文章推荐
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
Mar 03 Javascript
如何将一个String和多个String值进行比较思路分析
Apr 22 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
JavaScript数据结构和算法之图和图算法
Feb 11 Javascript
JS实现控制文本框的内容
Jul 10 Javascript
JS实现图片预加载之无序预加载功能代码
May 12 Javascript
JavaScript使用Ajax上传文件的示例代码
Aug 10 Javascript
JS实现图片切换特效
Dec 23 Javascript
在实例中重学JavaScript事件循环
Dec 03 Javascript
测量JavaScript函数的性能各种方式对比
Apr 27 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
验证码按回车不变解决方法
2013/03/29 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
express express-session的使用小结
2018/12/12 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python的中异常处理机制
2018/08/30 Python
Python 读写文件的操作代码
2018/09/20 Python
Python目录和文件处理总结详解
2019/09/02 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
医院总经理职责
2013/12/26 职场文书
宿舍卫生检讨书
2014/01/16 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
幼儿园安全责任书
2014/04/14 职场文书
商品陈列协议书
2014/09/29 职场文书
公司员工安全协议书
2014/11/21 职场文书
小学运动会加油稿
2015/07/22 职场文书
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers