這篇文章主要介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)10多年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營(yíng)銷解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都柴油發(fā)電機(jī)等企業(yè),備受客戶表?yè)P(yáng)。
實(shí)現(xiàn)思路
1、通過(guò)綁定點(diǎn)擊事件實(shí)現(xiàn)待計(jì)算式子的輸入
2、遍歷原式子,讀取式子中乘除運(yùn)算符的位置
3、優(yōu)先處理乘除取余運(yùn)算
4、處理加減運(yùn)算
5、返回結(jié)果
代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <!-- 計(jì)算器 --> <style> .work2{ width: 500px; margin-top: 50px; } h3{ color: #333; } #work2Article1{ width: 100%; height: 200px; background: #cccccc; font-size: 20px; } #work2Article2{ width: 100%; height: 400px; background: #cccccc; } #work2Article2 button{ width: 24.1%; height: 20%; color: #333; background: #999; } .work2 button{ font-size: 20px; } </style> <section class="work2"> <h3>計(jì)算器</h3> <article id="work2Article1"> </article> <article id="work2Article2"> <button id="work2BtnCle">AC</button> <button id="work2BtnDel">×</button> <button id="work2BtnRem">%</button> <button id="work2BtnDiv">/</button> <button id="work2Btn7">7</button> <button id="work2Btn8">8</button> <button id="work2Btn9">9</button> <button id="work2BtnMul">*</button> <button id="work2Btn4">4</button> <button id="work2Btn5">5</button> <button id="work2Btn6">6</button> <button id="work2BtnSub">-</button> <button id="work2Btn1">1</button> <button id="work2Btn2">2</button> <button id="work2Btn3">3</button> <button id="work2BtnAdd">+</button> <button id="work2BtnNull">未開(kāi)發(fā)</button> <button id="work2Btn0">0</button> <button id="work2BtnPoi">.</button> <button id="work2BtnEqu">=</button> </article> </section> <script> var num = "0"; //輸入的原式 var res = 0 ; //結(jié)果 var work2Article1 = document.getElementById('work2Article1'); var work2BtnCle = document.getElementById('work2BtnCle'); var work2BtnDiv = document.getElementById('work2BtnDiv'); var work2BtnDel = document.getElementById('work2BtnDel'); var work2BtnRem = document.getElementById('work2BtnRem'); var work2BtnMul = document.getElementById('work2BtnMul'); var work2BtnSub = document.getElementById('work2BtnSub'); var work2BtnAdd = document.getElementById('work2BtnAdd'); var work2BtnNull = document.getElementById('work2BtnNull'); var work2BtnPoi = document.getElementById('work2BtnPoi'); var work2BtnEqu = document.getElementById('work2BtnEqu'); var work2Btn1 = document.getElementById('work2Btn1'); var work2Btn2 = document.getElementById('work2Btn2'); var work2Btn3 = document.getElementById('work2Btn3'); var work2Btn4 = document.getElementById('work2Btn4'); var work2Btn5 = document.getElementById('work2Btn5'); var work2Btn6 = document.getElementById('work2Btn6'); var work2Btn7 = document.getElementById('work2Btn7'); var work2Btn8 = document.getElementById('work2Btn8'); var work2Btn9 = document.getElementById('work2Btn9'); var work2Btn0 = document.getElementById('work2Btn0'); // 初始化 work2BtnCle.onclick = function () { num = "0" ; work2Article1.innerText=`${num}`; } work2BtnDel.onclick = function () { // 判斷原式長(zhǎng)度,長(zhǎng)度為1時(shí)變?yōu)? if(num.length==1){ num = '0' ; work2Article1.innerText=num; // 否則減去最后一位 }else{ num = num.substring(0,num.length-1); work2Article1.innerText=num; } } // 運(yùn)算符點(diǎn)擊事件 work2BtnDiv.onclick = function () { num += "/" work2Article1.innerText=num; } work2BtnRem.onclick = function () { num += "%" ; work2Article1.innerText=`${num}`; } work2BtnMul.onclick = function () { num += "*" ; work2Article1.innerText=`${num}`; } work2BtnAdd.onclick = function () { num += "+" ; work2Article1.innerText=`${num}`; } work2BtnNull.onclick = function () { alert('下次一定開(kāi)發(fā)出來(lái)'); } work2BtnPoi.onclick = function () { num += "." ; work2Article1.innerText=`${num}`; } work2BtnSub.onclick = function () { num += "-" ; work2Article1.innerText=`${num}`; } // 數(shù)字點(diǎn)擊事件 work2Btn1.onclick =function(){ if( num == "0" ){ num = "1"; }else{ num += "1" ; } work2Article1.innerText=`${num}`; } work2Btn2.onclick =function(){ if( num == "0" ){ num = "2"; }else{ num += "2" ; } work2Article1.innerText=`${num}`; } work2Btn3.onclick =function(){ if( num == "0" ){ num = "3"; }else{ num += "3" ; } work2Article1.innerText=`${num}`; } work2Btn4.onclick =function(){ if( num == "0" ){ num = "4"; }else{ num += "4" ; } work2Article1.innerText=`${num}`; } work2Btn5.onclick =function(){ if( num == "0" ){ num = "5"; }else{ num += "5" ; } work2Article1.innerText=`${num}`; } work2Btn6.onclick =function(){ if( num == "0" ){ num = "6"; }else{ num += "6" ; } work2Article1.innerText=`${num}`; } work2Btn7.onclick =function(){ if( num == "0" ){ num = "7"; }else{ num += "7" ; } work2Article1.innerText=`${num}`; } work2Btn8.onclick =function(){ if( num == "0" ){ num = "8"; }else{ num += "8" ; } work2Article1.innerText=`${num}`; } work2Btn9.onclick =function(){ if( num == "0" ){ num = "9"; }else{ num += "9" ; } work2Article1.innerText=`${num}`; } work2Btn0.onclick =function(){ if( num == "0" ){ num = "0"; }else{ num += "0" ; } work2Article1.innerText=`${num}`; } work2BtnEqu.onclick = function () { // num = Number(num); //檢測(cè)運(yùn)算符號(hào)的位置 function obtainSymbol(){ var num1 = []; var o = 0 ; for(var i = 0 ; i<=num.length ; i++){ if(num.charAt(i)=='+'){ num1[o] = i ; o++; }else if(num.charAt(i)=='-'){ num1[o] = i ; o++; }else if(num.charAt(i)=='*'){ num1[o] = i ; o++; }else if(num.charAt(i)=='/'){ num1[o] = i ; o++; }else if(num.charAt(i)=='%'){ num1[o] = i ; o++; } } return num1 ; } var res1 = 0 ; //計(jì)算結(jié)果 var numStar = num ; //重新獲取原式子 // 檢測(cè)乘除取余運(yùn)算 var num1 = obtainSymbol(); console.log(num1); // 檢測(cè)除了第一個(gè)符號(hào)之外的乘除取余運(yùn)算 for( var w = 0 ; w <= num1.length ; w++ ){ if(w != 0){ if( num.charAt(num1[w]) == '*' || num.charAt(num1[w]) == '/' || num.charAt(num1[w]) == '%' ){ if(w != num1.length-1){ switch(num.charAt(num1[w])){ case '*': var l =Number(num.substring(num1[w-1],num1[w]))*Number(num.substring(num1[w]+1,num1[w+1])) ; console.log(l); num = num.substring(0,num1[w-1]+1) + l + num.substring(num1[w+1]) ; break; case '/': var l =Number(num.substring(num1[w-1],num1[w]))*Number(num.substring(num1[w]+1,num1[w+1])) ; num = num.substring(0,num1[w-1]+1) + l + num.substring(num1[w+1]) ; break; case '%': var l =Number(num.substring(num1[w-1],num1[w]))*Number(num.substring(num1[w]+1,num1[w+1])) ; num = num.substring(0,num1[w-1]+1) + l + num.substring(num1[w+1]) ; break; } }else if(w == num1.length-1 ){ switch(num.charAt(num1[w])){ case '*': var l =Number(num.substring(num1[w-1]+1,num1[w])) * Number(num.substring(num1[w]+1)) ; num = num.substring(0,num1[w-1]+1) + l ; break; case '/': var l =Number(num.substring(num1[w-1]+1,num1[w])) / Number(num.substring(num1[w]+1)) ; num = num.substring(0,num1[w-1]+1) + l ; break; case '%': var l =Number(num.substring(num1[w-1]+1,num1[w])) % Number(num.substring(num1[w]+1)) ; num = num.substring(0,num1[w-1]+1) + l; break; } } num1 = 0 ; num1 = obtainSymbol(); w -= 1; } } } // 從第一位運(yùn)算符開(kāi)始運(yùn)算 for(var k = 0 ; k < num1.length ; k++){ if(k==0){ switch(num.charAt(num1[k])){ case '+': res1 += Number(num.substring(0,num1[k])) + Number(num.substring(num1[k]+1,num1[k+1])) ; break; case '-': res1 += Number(num.substring(0,num1[k])) - Number(num.substring(num1[k]+1,num1[k+1])) ; break; case '*': res1 += Number(num.substring(0,num1[k])) * Number(num.substring(num1[k]+1,num1[k+1])) ; break; case '/': res1 += Number(num.substring(0,num1[k])) / Number(num.substring(num1[k]+1,num1[k+1])) ; break; case '%': res1 += Number(num.substring(0,num1[k])) % Number(num.substring(num1[k]+1,num1[k+1])) ; break; } }else{ switch(num.charAt(num1[k])){ case '+': if(k==num1.length-1){ res1 += Number(num.substring(num1[k]+1)) ; }else{ res1 += Number(num.substring(num1[k]+1,num1[k+1])); }break; case '-': if(k==num1.length-1){ res1 -= Number(num.substring(num1[k]+1)) ; }else{ res1 -= Number(num.substring(num1[k]+1,num1[k+1])); }break; case '*': if(k==num1.length-1){ res1 *= Number(num.substring(num1[k]+1)) ; }else{ res1 *= Number(num.substring(num1[k]+1,num1[k+1])); }break; case '/': if(k==num1.length-1){ res1 /= Number(num.substring(num1[k]+1)) ; }else{ res1 /= Number(num.substring(num1[k]+1,num1[k+1])); }break; case '%': if(k==num1.length-1){ res1 %= Number(num.substring(num1[k]+1)) ; }else{ res1 %= Number(num.substring(num1[k]+1,num1[k+1])); }break; } } } work2Article1.innerText=`${numStar}=${res1}`; } </script> </body> </html>
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的方法”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
網(wǎng)站題目:JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的方法
網(wǎng)站URL:http://aaarwkj.com/article30/ipoppo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站、全網(wǎng)營(yíng)銷推廣、手機(jī)網(wǎng)站建設(shè)、定制開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)