简易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的事件绑定的一些思考(补充)
Apr 20 Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 Javascript
javascript原生ajax写法分享
Apr 10 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
AngularJS动态生成div的ID源码解析
Aug 29 Javascript
基本DOM节点操作
Jan 17 Javascript
react实现点击选中的li高亮的示例代码
May 24 Javascript
使用angular-cli webpack创建多个包的方法
Oct 16 Javascript
微信小程序左滑删除实现代码实例
Sep 16 Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 Javascript
小程序中手机号识别的示例
Dec 14 Javascript
token 机制和实现方式
Dec 15 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实现可自定义样式的分页类
2016/03/29 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
Python 字符串操作方法大全
2014/03/11 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python做文本按行去重的实现方法
2016/10/19 Python
快速了解Python相对导入
2018/01/12 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
python爬虫用mongodb的理由
2020/07/28 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
非常详细的C#面试题集
2016/07/13 面试题
军训心得体会
2013/12/31 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
总经理任命书范本
2014/06/05 职场文书
电影建党伟业观后感
2015/06/01 职场文书
二十年同学聚会感言
2015/07/30 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技