[JS] CALCULATOR
jsを使用した計算機の作成
最初のプロジェクトを成功裏に完了しました.
1. preview
2. html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="style.css"/> </head> <body> <div id="box"> <form id="display"> <input type="text" id="text" type="text" readonly/> </form> <div id="r1"> <button id="operator" class="r1-1">%</button> <button id="C" class="r1-2">C</button> </div> <div id="r2"> <button id="7">7</button> <button id="8">8</button> <button id="9">9</button> <button id="operator">+</button> </div> <div id="r3"> <button id="4">4</button> <button id="5">5</button> <button id="6">6</button> <button id="operator">-</button> </div> <div id="r4"> <button id="1">1</button> <button id="2">2</button> <button id="3">3</button> <button id="operator">*</button> </div> <div id="r5"> <button id="0">0</button> <button id=".">.</button> <button id="equals">=</button> <button id="operator">/</button> </div> </div> <script src="app.js"></script> </body> </html>
3. CSS
button{ width:50px; height:50px; padding:10px; margin:5px; font-size:20px; } .r1-1,.r1-2{ width:115px; height:50px; } #text{ margin:5px; width:240px; height:50px; }
HTMLとCSSの構成はできるだけ簡単です.
4. JS
ex)要求a+b=c,
item1 = a
ope = '+'
item2 = b
equals = '='
result = c
function init() { btns.forEach(function button(btn){ btn.addEventListener("click", function btnHandler(){ switch(btn.id){ case "operator": let ope = btn.innerText; operator(ope); break; case "C": clear(); break; case "equals": equals(); break; default: displayNumber(btn.id); break; } }); }); }
計算機のボタンをクリックするとhtmlボタンのid値が受信され、switchで区切られます.
function displayNumber(number){ if(!item1 || !ope){ display.value += number; item1 += number; } else if(item1 && ope){ display.value += number; item2 += number; } else display.value = "error"; }
item 1は1桁ではなく110000
演算子が表示される前に、
入力bにはitem 1と演算子が必要です.
「.」もdisplayNumberで処理されます.
function operator(oper){ if(!item1) { display.value ="error" }else{ display.value += oper; ope = oper; } }
演算子はdisplayに入力された演算子を簡単に出力できます.
入力した演算子を空の文字列opeに置き換えました.
function equals(){ if(ope){ switch(ope){ case "+": result = (parseFloat(item1)+parseFloat(item2)); break; case "-": result = (parseFloat(item1)-parseFloat(item2)); break; case "/": result = (parseFloat(item1) / parseFloat(item2)); break; case "%": result = (parseFloat(item1)%parseFloat(item2)); break; case "*": result = (parseFloat(item1)*parseFloat(item2)); break; } }else display.value ="error"; display.value = result; item1 = result; item2 = 0; ope =""; }
equalsはswitch条件を演算子として受け取ったope値,
displayNumberに文字列で入力したアイテムをfloat形式に変換しresultに置き換えました.
結果値をdisplayに出力し
初期化item 2および演算子
5) clear
function clear(){ result = 0; ope = ""; item1 = 0; item2 = 0; display.value =""; }
clearはすべての値を初期化します.
5. 完了
『p>reactを勉強するときはjsに足りない感じが多いので
jsを再学習していて、かなり面白かったです.
電卓を作っている間に、他の人があらかじめ作っている電卓をたくさん見ました.
私が望むように実現したjs計算機が見つからなかった......
できるだけ短くて簡単なコードで1つずつ
私たちはずっと努力して実施しています.
質問や物足りないところはご意見をどうぞ!!
Reference
この問題について([JS] CALCULATOR), 我々は、より多くの情報をここで見つけました https://velog.io/@jsnotepad/JS-CALCULATORテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol