简易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 相关文章推荐
javascript iframe内的函数调用实现方法
Jul 19 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
Mar 24 Javascript
有关JavaScript中call()和apply() 的一些理解
May 20 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
Sep 01 Javascript
BootStrap入门教程(二)之固定的内置样式
Sep 19 Javascript
js+html制作简单日历的方法
Jun 27 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
vue组件父与子通信详解(一)
Nov 07 Javascript
vue实现a标签点击高亮方法
Mar 17 Javascript
使用 vue-i18n 切换中英文效果
May 23 Javascript
Node.js 使用request模块下载文件的实例
Sep 05 Javascript
vue路由拦截器和请求拦截器知识点总结
Nov 08 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实现的封装验证码类详解
2013/06/18 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
十八大闭幕感言
2014/01/22 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python