js 计算器转摘

转自:https://mp.weixin.qq.com/s/Jxe3V7D0PFLvIFNZPlSyNg

 <table>
      <tr>
          <td colspan="4"><input class="txt" type="text" disabled/></td>
      </tr>
      <tr>
          <td colspan="2"><input class="btn_click" type="button" value="AC"/></td>
          <td colspan="2"><input class="btn_click"  type="button" value="DEL"/></td>
      </tr>
      <tr>
          <td><input class="btn" type="button" value="7"/></td>
          <td><input class="btn" type="button" value="8"/></td>
          <td><input class="btn" type="button" value="9"/></td>
          <td><input class="btn" type="button" value="*"/></td>

      </tr>
      <tr>
          <td><input class="btn" type="button" value="4"/></td>
          <td><input class="btn" type="button" value="5"/></td>
          <td><input class="btn" type="button" value="6"/></td>
          <td><input class="btn" type="button" value="/"/></td>

      </tr>
      <tr>
          <td><input class="btn" type="button" value="1"/></td>
          <td><input class="btn" type="button" value="2"/></td>
          <td><input class="btn" type="button" value="3"/></td>
          <td><input class="btn" type="button" value="-"/></td>

      </tr>
      <tr>
          <td><input class="btn" type="button" value="0"/></td>
          <td><input class="btn" type="button" value="."/></td>
          <td><input class="btn" type="button" value="+"/></td>
          <td><input class="btn" type="button" value="="/></td>

      </tr>

</table>
<style>
        table{            border-collapse: collapse;            margin: auto auto;
        }        td{            width: 150px;            line-height: 70px;
        }        .btn{            width: 150px;            line-height: 70px;            font-size: x-large;
        }        .btn_click{            width: 302px;            line-height: 70px;            font-size: x-large;
        }        .txt{            width: 600px;            line-height: 100px;            font-size: x-large;text-align: right;
        }    </style>
<script>    /*在网页加载时  给按钮添加点击事件*/
    window.onload = function () {        //定义数组  来接收用户按的数字和计算符号
        var way_res = [];        //获取按钮对象
        var btn_txt = document.getElementsByClassName("btn");        //获取屏幕元素
        var txt = document.getElementsByClassName("txt")[0];        //获取清空按钮和退格按钮
        var btn_way = document.getElementsByClassName("btn_click");        for (var i = 0; i < btn_way.length; i++) {
            btn_way[i].onclick = function () {                //判断按钮
                if (this.value == "AC") {
                    way_res = [];
                    txt.value = "";
                }                else {                    /* substr() 截断字符串 1.从那个位置开始   2.截取多少长度*/
                    txt.value = txt.value.substr(0, txt.value.length - 1);
                }
            }
        }        //给btn_txt  数组对象添加事件
        for (var i = 0; i < btn_txt.length; i++) {
            btn_txt[i].onclick = function () {                /* this 指代的是当前事件的执行对象*/
                /*按完键将值传给屏幕*/
                /*判断是否为数字*/
                if (txt.value == "" && this.value == ".") {
                    txt.value = "0.";
                }                else {                    if (!isNaN(this.value) || this.value == ".") {                        /*用户输入的是数字或者点的情况*/
                        /*indexOf() 用来查找字符  如果有返回当前位置  如果没有返回-1*/
                        if (txt.value.indexOf(".") != -1) {                            /*有点存在的情况*/
                            if (this.value != ".") {                                /*当前按得不是点,进行拼接*/
                                txt.value += this.value;
                            }
                        }                        else {                            /*没点存在直接拼接*/
                            txt.value += this.value;
                        }
                    }                    else {                        /*是符号的情况*/
                        //先存值  在清屏
                        if (this.value != "=") {                            /*是符号但不为等号的情况*/
                            way_res[way_res.length] = txt.value;                            //存符号
                            way_res[way_res.length] = this.value;                            //清屏
                            txt.value = "";
                        }                        else {                            /*是等号的情况*/
                            way_res[way_res.length] = txt.value;                            //eval()方法   专门用来计算表达式的值
                            txt.value = eval(way_res.join(""));                            //计算完成之后将数组清空
                            way_res = [];
                        }
                    }
                }
            }
        }
    }
</script>

 

转载于:https://www.cnblogs.com/NB-JDzhou/p/10042893.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的JavaScript计算器的代码示例: ```javascript // 获取按钮元素 var buttons = document.querySelectorAll('.button'); var input = document.querySelector('.input'); // 给每个按钮添加点击事件监听器 buttons.forEach(function(button) { button.addEventListener('click', function() { var value = button.getAttribute('data-value'); // 如果点击的是等号按钮 if (value === '=') { // 判断输入框的值是否包含运算符 if (input.value.includes('+') || input.value.includes('-') || input.value.includes('*') || input.value.includes('/')) { alert("连续运算功能未上线!"); } else { input.value += value; } } else { input.value += value; } }); }); // 数值计算 function calculate() { var expression = input.value; // 判断输入的表达式中包含哪个运算符 if (expression.includes('+')) { var numbers = expression.split('+'); var num1 = parseFloat(numbers[0]); var num2 = parseFloat(numbers[1]); input.value = num1 + num2; } else if (expression.includes('-')) { var numbers = expression.split('-'); var num1 = parseFloat(numbers[0]); var num2 = parseFloat(numbers[1]); input.value = num1 - num2; } else if (expression.includes('*')) { var numbers = expression.split('*'); var num1 = parseFloat(numbers[0]); var num2 = parseFloat(numbers[1]); input.value = num1 * num2; } else if (expression.includes('/')) { var numbers = expression.split('/'); var num1 = parseFloat(numbers[0]); var num2 = parseFloat(numbers[1]); // 判断分母是否为0 if (num2 === 0) { input.value = "Error"; } else { input.value = num1 / num2; } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值