Skip to content

JavaScript Variables πŸš€ΒΆ

Prerequisites: JavaScript Syntax

Mentor's Note: In the old days, JavaScript had many bugs because of how it handled variables. In 2015 (ES6), new rules were added to make it safer. Let's learn the modern way! πŸ’‘


🌟 The Scenario: The Note vs. The Tablet πŸ“ΒΆ

Imagine you are a detective at a crime scene.

  • let (The Post-it Note) πŸ“: You write down your current clue. As you find better info, you Scratch out the old note and write a new one. (Changeable). πŸ“¦
  • const (The Stone Tablet) 🧱: You carve the crime's location in stone. It is Permanent. No one can change it. (Unchangeable). πŸ“¦
  • var (The Old Graffiti) πŸ–ŒοΈ: It's messy, it's everywhere, and sometimes it appears in places you didn't expect! (Avoid). βœ…

πŸ“– Concept ExplanationΒΆ

1. const (The Modern Standard)ΒΆ

Always use const by default. It prevents you from accidentally overwriting your data. - Must be initialized. - Cannot be reassigned.

2. letΒΆ

Use let only when you know the value will change (e.g., a loop counter or a score).

3. Scope (The "Wall" Rule)ΒΆ

Modern variables (let/const) are Block Scoped. This means if you create a variable inside { }, it is trapped there and cannot "leak" outside. 🧱


🎨 Visual Logic: Block Scope¢

graph TD
    A[Main Program] --> B{ { Code Block } }
    B --> C["let secret = 'shh' 🀫"]
    C -. "X" .-> D[Main Program tries to see secret]
    D -- "ReferenceError!" --> E[End 🏁]

πŸ’» Implementation: The Storage LabΒΆ

// πŸ›’ Scenario: Tracking a Game Score
// πŸš€ Action: Using const for identity and let for stats

const playerName = "Vishnu"; // 🧱 Won't change
let score = 0;               // πŸ“ Will increase

// Changing data
score = score + 10; // βœ… Allowed
// playerName = "Ankit"; // ❌ ERROR!

console.log(`${playerName} scored: ${score} πŸ†`);
var x = 10;
var x = 20; // βœ… var allows re-declaring (Dangerous!)

let y = 10;
// let y = 20; // ❌ SyntaxError (Safe!)

πŸ“Š Sample Dry RunΒΆ

Instruction Variable Memory State Result
const id = 1 id 1 (Locked) Success βœ…
let val = 5 val 5 (Unlocked) Success βœ…
val = 6 val 6 Success βœ…
id = 2 id 1 CRASH πŸ’₯

πŸ“‰ Technical AnalysisΒΆ

  • Hoisting: var is hoisted and initialized as undefined. let and const are hoisted but stay in the Temporal Dead Zone, meaning you get an error if you use them before the declaration line. ⏱️

🎯 Practice Lab πŸ§ͺΒΆ

Task: The Price Calculator

Task: Create a const for TAX_RATE = 0.18. Create a let for price = 100. Increase the price by 20% and then calculate the final amount. Hint: let final = price * (1 + TAX_RATE). πŸ’‘


πŸ’‘ Pro Tip: "Good names are the best documentation. If you name your variables well, your code tells a story." - Anonymous


← Back: Syntax | Next: Data Types β†’