JS实现简易计算器

效果图:

HTML部分:

<div class="calculator">
    <div class="result">
        <input class="AC" type="button" value="AC" onclick="Clear()">
        <input type="text" value="" class="printf" id="printf" style="text-align: end">
    </div>
    <div class="content">
        <ul class="Ul">
            <li>
                <button type="button" onclick="showNum(this.innerText)">0</button>
                <button type="button" onclick="back()" style="background: #C2C973">C</button>
                <button type="button" onclick="showNum(this.innerText)" style="background: #C2C973">/</button>
                <button type="button" onclick="result()" style="background: #C2C973">=</button>
            </li>
            <li>
                <button type="button" onclick="showNum(this.innerText)">1</button>
                <button type="button" onclick="showNum(this.innerText)">2</button>
                <button type="button" onclick="showNum(this.innerText)">3</button>
                <button type="button" onclick="showNum(this.innerText)" style="background: #C2C973">+</button>
            </li>
            <li>
                <button type="button" onclick="showNum(this.innerText)">4</button>
                <button type="button" onclick="showNum(this.innerText)">5</button>
                <button type="button" onclick="showNum(this.innerText)">6</button>
                <button type="button" onclick="showNum(this.innerText)" style="background: #C2C973">-</button>
            </li>
            <li>
                <button type="button" onclick="showNum(this.innerText)">7</button>
                <button type="button" onclick="showNum(this.innerText)">8</button>
                <button type="button" onclick="showNum(this.innerText)">9</button>
                <button type="button" onclick="showNum(this.innerText)" style="background: #C2C973">*</button>
            </li>
        </ul>
    </div>
</div>

JS部分

由于事件的绑定为行内绑定,所以在js里面直接写相应的函数。因为只是做一个小案例所以采用了这样的写法,如果是用来写一些项目不太建议用行内绑定,行内绑定不太利于代码的维护。

实现的核心思路为:

(1)将点击的数字和符号的值渲染到我们的输入框中

(2)将输入框中的得到的值通过eval()方法来进行计算

什么是eval()方法?

eval() 的参数是一个字符串,如果字符串表示的是表达式,eval() 会对表达式进行求值。

(3)计算器的清空操作,直接将值设为空

(4)计算器的倒退按钮,通过slice()方法截取所需要的的元素

slice(begin,end) 截取包括 begin,不包括end,返回一个新的数组对象,原始数组不会被改变。

var printf=document.getElementById("printf");
 function showNum(e){
     printf.value+=e;
 }
 function result(){
     printf.value=eval(printf.value);
 }
 function Clear(){
     printf.value="";
 }
 function back(){
     printf.value=printf.value.slice(0,printf.value.length-1);//slice里的值指的是索引,包含开始值,不包含结束值
 }

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值