JavaScript實現簡易計算器案例
本文實例為大傢分享瞭JavaScript模仿windows計算器,供大傢參考,具體內容如下
功能:
1、實現單機按鈕錄入數字
2、實現基礎四則運算功能,並添加必要的異常處理,例如,除數為0
3、實現小數點功能並添加異常處理:小數點隻能出現一次
4、實現正負號功能
5、實現退位功能,已經是最後一位時,顯示框顯示為0
6、清屏功能
項目原型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" type="text/css" href="../index.css/index.css" > <script type="text/javascript" src="../index.js/index.js"></script> <script type="text/javascript" src="../index.js/index1.js"></script> </head> <body onload="jiazai(),o()"> <div class="div1"> <div class="div2"> <input type="text" name="num" id="num"> </div> <div class="div3"> <input type="button" value="c"> <input type="button" value="←"> <input type="button" value="+/-"> <input type="button" value="/"> <input type="button" value="1"> <input type="button" value="2"> <input type="button" value="3"> <input type="button" value="*"> <input type="button" value="4"> <input type="button" value="5"> <input type="button" value="6"> <input type="button" value="-"> <input type="button" value="7"> <input type="button" value="8"> <input type="button" value="9"> <input type="button" value="+"> <input type="button" value="0"> <input type="button" value="."> <input type="button" value="="> <input type="button" value="d" id="baidu"> </div> </div> </body> </html>
*{ margin: 0; } .div1{ /*width: 170px;*/ position: absolute; top: 60px; left: 200px; margin-left: 5px; } .div1 .div2 input{ width: 170px; text-align: right; background-color: white; border:1px solid black; padding-right: 10px; box-sizing: border-box; } .div1 .div3 input{ width: 35px; margin-right: 5px; margin-top: 5px; } .div1 .div3{ width: 190px; } .div1 .div3 input:hover{ background-color: #abcdef; border:1px solid black; border-radius: 5px; }
小數點功能的實現
1、小數點隻能出現一次
2、再小數點case這裡直接函數調用
3、技術點:indexof(),查找字符是否存在,存在的話返回大於0,不存在的話返回-1
//小數點 function xiaoshu(n){ if (n.indexOf('.')==-1) { num.value=n+'.'; }else{ num.value=n; } } case '.': xiaoshu(num.value); break; 1
進行非數字和數字的判斷
回退鍵的實現
需求:將文本框中的最後一個字符刪掉後,保留文本框中的其他內容
1、文本框裡面有123,按下退位鍵保留12 , 再次按下保留1
2、當文本框內隻剩下1的時候,再次按下退位鍵,文本框恢復到默認狀態0
正負號
1、輸入123,第一次單機添加 “-” ,再次單機顯示+
2、如果數字前面有符號那就取消,沒有符號就加上,類似開關按鈕
JS代碼
function jiazai(){ //獲取文本框的ID var num = document.getElementById('num'); //在腳本中設置input文本框的value值為0 num.value = '0'; //設置input文本框為不可選中狀態 num.disabled = 'disabled'; //獲取標簽名為input的所有標簽 var btn = document.getElementsByTagName('input'); var xin;//定義一個接受新的值 var bb;//定義一個符號判斷給=,具體用來+-*/ for(var i=0;i<btn.length;i++){ //給input所有按鈕綁定 onclick事件 btn[i].onclick = function(){ //判斷如過是數字 if (isNumber(this.value)) { if (isNull(num.value)) { num.value = this.value; }else{ num.value = num.value+this.value; } }//否則,如果是非數字的話 else{ //獲取非數字 var feishuzi = this.value; //多條件分支判斷 switch(feishuzi){ case '+': xin = Number(num.value); num.value = 0; bb ='+'; break; case '-': xin = Number(num.value); num.value = 0; bb ='-'; break; case '*': xin = Number(num.value); num.value = 0; bb ='*'; break; case '/': xin = Number(num.value); num.value = 0; bb ='/'; break; case 'c': num.value = 0; break; case '←': num.value = fn(num.value); break; case '+/-': num.value =sign(num.value); break; case '.': xiaoshu(num.value); break; case '=': switch(bb){ case '+': num.value = xin+Number(num.value); break; case '-': num.value = xin-Number(num.value); break; case '*': num.value = xin*Number(num.value); break; case '/': if (Number(num.value)==0) { alert('除數不能為0'); num.value = 0; }else{ num.value = xin/Number(num.value); } break; } break; } } } } } //判斷是否是數字,或者非數字 function isNumber(n){ if (!isNaN(n)) { return true; }else{ return false; } } var btn = document.getElementsByTagName('input'); //判斷內容是否為空 function isNull(n){ if (n=='0' || n.length==0) { return true; }else{ return false; } } //回退鍵定義函數 function fn(c){ c=c.substr(0,c.length-1) if (isNull(c)) { c= 0; } return c; } //正負號定義函數 function sign(n){ n=Number(n)*(-1); return n; } //小數點 function xiaoshu(n){ if (n.indexOf('.')==-1) { num.value=n+'.'; }else{ num.value=n; } }
計算器的細節收尾
1、鼠標指針懸浮再按鈕上希望加上背景
2、鼠標單機d打開百度
3、0和邊框右側距離有點大。
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- JavaScript仿windows計算器功能
- js實現網頁計算器
- JavaScript實現班級抽簽小程序
- 原生JavaScript實現購物車
- JavaScript DOM API的使用教程及綜合案例