From 5e1064b99845ed227d9eec4fbad95d6cb868175d Mon Sep 17 00:00:00 2001 From: Om149 Date: Sat, 2 Aug 2025 12:11:22 +0530 Subject: [PATCH] Update main.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🛠 Refactored calculator logic in main.js - Replaced undeclared variables with 'let' for clarity and scope safety - Removed unnecessary separate condition for '*' - Added try-catch around eval() to prevent crashes on invalid input - Updated "=" logic to support expression chaining (e.g. result + 5) - Cleaned formatting for better readability --- JS calculater/js/main.js | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/JS calculater/js/main.js b/JS calculater/js/main.js index 685d30d..d3d3bda 100644 --- a/JS calculater/js/main.js +++ b/JS calculater/js/main.js @@ -1,23 +1,25 @@ -let screen = document.getElementById("screen") -buttons = document.querySelectorAll("button") +let screen = document.getElementById("screen"); +let buttons = document.querySelectorAll("button"); let screenValue = ""; -for(item of buttons){ - item.addEventListener("click", (e)=>{ - buttonText =e.target.innerText; - if(buttonText == "*"){ - screenValue += buttonText; - screen.value = screenValue; - } - else if(buttonText == "c"){ +for (let item of buttons) { + item.addEventListener("click", (e) => { + let buttonText = e.target.innerText; + + if (buttonText === "c") { screenValue = ""; screen.value = screenValue; - } - else if(buttonText == "="){ - screen.value = eval(screenValue); - }else{ + } else if (buttonText === "=") { + try { + screen.value = eval(screenValue); + screenValue = screen.value; // allow chaining + } catch { + screen.value = "Error"; + screenValue = ""; + } + } else { screenValue += buttonText; screen.value = screenValue; } - }) + }); }