简易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 相关文章推荐
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
Jun 08 Javascript
网页广告中JS代码的信息监听示例
Apr 02 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
jQuery定义插件的方法
Dec 18 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
JavaScript数组的定义及数字操作技巧
Jun 06 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
Oct 27 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
Jan 24 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
关于JavaScript中异步/等待的用法与理解
Nov 18 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开发规范
2018/02/05 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
让您的菜单不离网站
2006/10/03 Javascript
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
python实现根据文件格式分类
2019/10/31 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
流动人口婚育证明
2014/10/19 职场文书
单位作风建设自查报告
2014/10/23 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript