Building a Simple Calculator with JavaScript

Building a Simple Calculator with JavaScript

“It does calculations, not drama.” 🧮😄

When learning JavaScript, there are some mini projects that:

Look small
Start simple
But hide a ton of core knowledge inside

The Calculator project is exactly one of those.

It’s one of the most humble—yet most effective—ways to say:
“Yeah… I know JavaScript.” 😎


1️⃣ Before the Code: Let’s Build the Logic 🧠

(Because unplanned code = a chaotic life)

What does a calculator do?

  • The user enters numbers
  • Chooses an operation
  • JavaScript calculates
  • The result is shown on the screen

So what do we need?

🟦 Input → to get numbers
🟦 Buttons → to choose operations
🟦 Functions → to calculate
🟦 DOM → to display the result

📌 Golden rule:
Before writing code, always answer:
“What exactly will this app do?”


2️⃣ HTML: The Skeleton of the Calculator 🏗️

(No muscles, no brain… but it can stand)

<input type="number" id="num1" placeholder="1st number">
<input type="number" id="num2" placeholder="2nd number">

<button onclick="calculate('+')">+</button>
<button onclick="calculate('-')">-</button>
<button onclick="calculate('*')">*</button>
<button onclick="calculate('/')">/</button>

<p id="result">Result: </p>

What’s Happening in the HTML?

🔹 <input type="number">

  • Takes numeric input
  • Reduces typing letters
  • But JavaScript validation is still required ⚠️

🔹 id usage

id="num1"

This is how JavaScript says:
“Hey you, come here.” 👋

🔹 onclick

&lt;button onclick="calculate('+')">

🧠 Meaning:
“When this button is clicked, call the calculate function
and tell it which operation to use.”


3️⃣ JavaScript: The Brain of the Calculator 🧠⚡

Now the real magic begins.

function calculate(operation) {
  let num1 = Number(document.getElementById("num1").value);
  let num2 = Number(document.getElementById("num2").value);
  let result;

🔹 function calculate(operation)

  • One function
  • Receives the operation type
  • Reduces code repetition (PRO move 😎)

🔹 Getting Values from Inputs

let num1 = Number(document.getElementById("num1").value);

📌 Very important detail:

  • Input values are strings
  • "2" + "3""23"
  • Number("2") + Number("3")5

Number() = disaster prevention 😅


4️⃣ Choosing the Operation: if / else Logic ⚙️

if (operation === "+") {
  result = num1 + num2;
} else if (operation === "-") {
  result = num1 - num2;
} else if (operation === "*") {
  result = num1 * num2;
} else if (operation === "/") {
  result = num1 / num2;
}

What’s Going On Here?

  • Which button was clicked?
  • Do the matching math
  • JavaScript says:
    “Got it, I’ll handle this.” 😎

5️⃣ Displaying the Result 🖥️✨

document.getElementById("result").textContent =
  "Result: " + result;

📌 DOM manipulation =
That moment when JavaScript says:
“HTML, I’m speaking now.” 😄


6️⃣ Critical Trap: Division by Zero ⚠️

(Even math hates this)

if (operation === "/" &amp;&amp; num2 === 0) {
  result = "Cannot divide by zero!";
}

🧠 Professional reflex:
Never fully trust the user 😅
They will try something weird.


7️⃣ Cleaner & More Professional Version: switch–case ✨

switch (operation) {
  case "+":
    result = num1 + num2;
    break;
  case "-":
    result = num1 - num2;
    break;
  case "*":
    result = num1 * num2;
    break;
  case "/":
    result = num2 === 0
      ? "Cannot divide by zero"
      : num1 / num2;
    break;
}

📌 Advantages:

  • Readability ↑
  • Code clarity ↑
  • “Written by someone who knows their stuff” vibe ↑

8️⃣ Mini Debug Guide 🐞🛠️

If something doesn’t work:

console.log(num1, num2)
console.log(operation)
❓ Are inputs empty?
❓ Did you use Number()?

🧠 Debugging = a developer’s superpower 🦸‍♂️


9️⃣ What Did This Mini Project Teach You? 🎓

✔️ Getting data from the DOM
✔️ Event handling logic
✔️ Writing functions
✔️ Conditional structures (if, switch)
✔️ Handling user errors

Small project → big confidence 💪


🔟 Upgrade Ideas (For Those Who Want to Level Up) 🚀

➕ Add % (modulus)
🧹 Add a Clear (C) button
⌨️ Enable keyboard input
🎨 Style it like a real calculator with CSS
📱 Make it mobile responsive
🧠 Build a single-input “real” calculator logic


Most Common Mistakes ❌

❌ Not using Number()
❌ Calculating with empty inputs
❌ Writing everything in one line
❌ Ignoring code readability

✔️ Clean code = peaceful mind 😌


Short but Powerful Summary 🧠✨

  • Calculator = one of the golden JS learning projects
  • Simple, yet deeply educational
  • DOM + Functions + Conditions = full package
  • Mini projects turn you into a real developer 😎

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir