初学者です。javascriptを使って計算機のコードを入力しているのですが不明な点がいくつかあったため質問させていただきます。
html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script> 6 <link rel="stylesheet" href="reset.css"> 7 <link rel="stylesheet" href="main.css"> 8 <title>計算機</title> 9 </head> 10 11 <body> 12 <div id="content"> 13 <div id="output" class="display"></div> 14 15 <button class="button-size" onclick="edit(this)">7</button> 16 <button class="button-size" onclick="edit(this)">8</button> 17 <button class="button-size" onclick="edit(this)">9</button> 18 <button class="button-size" onclick="edit(this)">+</button><br> 19 <button class="button-size" onclick="edit(this)">4</button> 20 <button class="button-size" onclick="edit(this)">5</button> 21 <button class="button-size" onclick="edit(this)">6</button> 22 <button class="button-size" onclick="edit(this)">-</button><br> 23 <button class="button-size" onclick="edit(this)">1</button> 24 <button class="button-size" onclick="edit(this)">2</button> 25 <button class="button-size" onclick="edit(this)">3</button> 26 <button class="button-size" onclick="edit(this)">*</button><br> 27 <button class="button-size" onclick="edit(this)">0</button> 28 <button class="button-size" onclick="edit(this)">00</button> 29 <button class="button-size" onclick="edit(this)">.</button> 30 <button class="button-size" onclick="edit(this)">/</button><br> 31 <button class="button-size2" onclick="reset()">AC</button> 32 <button class="button-size2" onclick="calc(this)">=</button> 33 </div> 34 </div> 35 <script src="main.js"></script> 36 </body> 37 </html>
javascript
1 let display = document.getElementById("output"); 2 3 function edit(nums) { 4 display.textContent += nums.textContent; 5 } 6 7 function calc() { 8 display.textContent = new Function("return " + display.textContent)(); 9 } 10 11 function reset() { 12 display.textContent = ""; 13 }
(CSSは省略しています)
以上のようにコードを入力し、基本的な動作も取れたのですが問題点がいくつか生じており、
①演算子が連続で入力できてしまう(4++*--// など)
②(細かいところにはなりますが)最初に0を入力した際にそのまま表示されてしまう(012+... など)
以上の2点を修正したいのですが、どなたかご教授いただけますと幸いです。
他にも改善点・修正点ありましたら同時にご指摘くださるとありがたいです。