Back to Blog
JavaScript

JavaScript Variables Explained: Your Ultimate Guide to var, let, and const

11/6/2025
5 min read
JavaScript Variables Explained: Your Ultimate Guide to var, let, and const

Stop guessing! Master JavaScript variables (var, let, const) with this in-depth guide. Packed with examples, best practices, and real-world use cases. Level up your coding skills today!

JavaScript Variables Explained: Your Ultimate Guide to var, let, and const

JavaScript Variables Explained: Your Ultimate Guide to var, let, and const

JavaScript Variables: Your No-BS Guide to var, let, and const

Alright, let's talk about one of the first things you encounter when you dive into JavaScript: Variables.

If you're just starting out, you might think, "It's just a box to put stuff in, how complicated can it be?" Well, my friend, it's a rabbit hole. Understanding variables is like learning the alphabet before you write a novel. You can't build the next killer web app without getting this fundamental right.

So, let's cut through the jargon and break down everything you need to know about JavaScript variables. We're talking the what, the why, and the crucial differences between var, let, and const that trip up so many beginners (and even some seasoned devs).

What the Heck is a Variable, Anyway?

Think of a variable as a labeled jar. You put something inside the jar—a number, a piece of text, a list, even a whole function—and you stick a label on it so you can find it and use it later.

In tech-speak, a variable is a named storage for data. We use variables to save values and reuse them throughout our code. This is fundamental because it makes our code dynamic, reusable, and way easier to read.

The Nuts and Bolts: Declaring a Variable

"Declaring" a variable is just a fancy way of saying "Hey, JavaScript, I'm about to use a jar named userName, so get ready for it." You declare a variable using one of three keywords: var, let, or const.

javascript

// This is declaring a variable
let message;

Here, we've told JavaScript to create a jar with the label message. Right now, it's empty. We can put something in it by assigning a value.

javascript

// This is assigning a value
message = "Hello, CoderCrafter!";

You can, of course, do both in one line (which is super common):

javascript

// Declare AND assign
let message = "Hello, CoderCrafter!";

Now, whenever we use message in our code, JavaScript will know we're talking about the string "Hello, CoderCrafter!".

javascript

console.log(message); // This will output: Hello, CoderCrafter!

The Big Three: var, let, and const - A Family Drama

This is where it gets interesting. Back in the day, there was only var. Then, in 2015, ES6 (a major JavaScript update) introduced let and const to fix some of var's... well, quirks.

Let's meet the family.

1. The Old-Timer: var

var is the OG. It's been around since the beginning.

javascript

var age = 25;
var name = "Alice";

The main "quirks" of var are:

  • Function-Scoped: It's only confined within a function. Otherwise, it's globally scoped (more on scope in a sec).

  • Can Be Re-declared: You can declare the same variable twice without an error. This is a recipe for bugs.

  • Hoisting: This is a weird one. A var declaration is "hoisted" to the top of its scope, but it's initialized with undefined. This can lead to confusing behavior.

Because of these quirks, var is pretty much legacy code in modern JavaScript. You'll see it in older tutorials, but for new code, you should avoid it.

2. The Modern Go-To: let

let was introduced as a better, more predictable version of var.

javascript

let score = 0;
let userName = "CoderCrafterFan";

The key features of let are:

  • Block-Scoped: It's confined to any block of code {} (like in if statements or for loops). This is much safer.

  • Cannot Be Re-declared: Trying to declare the same variable twice in the same scope will throw an error. Thank you, JavaScript!

  • Hoisting: It's hoisted too, but it's not initialized. Accessing it before the declaration results in a ReferenceError.

For any variable that you need to reassign, let is your best friend.

3. The Constant Champion: const

const is short for "constant". It's used for variables whose value you do not intend to change.

javascript

const birthday = "1990-01-01";
const API_KEY = "abc123def456";
const PI = 3.14159;

The key features of const are:

  • Block-Scoped: Just like let.

  • Must be Assigned: You have to assign a value when you declare it. You can't just write const age;.

  • Cannot Be Reassigned: Once you assign a value, you cannot assign a new one. Trying to do so will throw an error.

Wait, does that mean it's completely immutable? Not exactly. If a const variable holds an object or an array, the contents inside that object or array can be changed. You just can't reassign the variable to a completely new object or array.

javascript

const person = { name: "John" };

// This is ALLOWED: Changing a property of the object
person.name = "Jane";
console.log(person.name); // Jane

// This will THROW AN ERROR: Reassigning the variable
// person = { name: "Alice" }; // Error!

Real-World Use Cases: How You'll Actually Use Them

Let's move from theory to practice. How do you decide which one to use?

Use const by Default

Seriously. Make this your habit. 90% of the time, you don't need to reassign a variable. Using const makes your code more predictable and prevents accidental reassignments.

  • For configuration values: const MAX_USERS = 100;

  • For DOM element references: const submitButton = document.getElementById('submit-btn');

  • For imported modules/libraries: const axios = require('axios');

  • For function expressions: const calculateTotal = (price, tax) => price + tax;

Use let When You Know The Value Will Change

If you know a variable will hold a value that changes over time, let is the clear choice.

  • Inside loops:

    javascript

    for (let i = 0; i < 10; i++) {
      console.log(i); // `i` changes with each iteration
    }
  • For stateful values:

    javascript

    let isLoggedIn = false;
    // ... later, after a user logs in
    isLoggedIn = true;
    
    let score = 0;
    score += 10; // Reassigning the score
  • For toggle switches:

    javascript

    let darkMode = false;
    function toggleTheme() {
      darkMode = !darkMode;
    }

What About var?

Just don't. Unless you're working on a legacy codebase that hasn't been updated since 2015, there's no reason to use var in new projects.

Best Practices to Make You Look Pro

  1. Default to const: It's the safest choice. You can always change it to let later if you need to.

  2. Use Descriptive Names: let x = 10; is terrible. let userScore = 10; is perfect. Your future self will thank you.

  3. Use camelCase: This is the standard naming convention in JavaScript for variables and functions (e.g., userName, totalCartValue).

  4. Initialize Variables When You Declare Them: It's cleaner and prevents undefined values.

  5. Use UPPERCASE for Constants: For global, truly constant values, using const API_BASE_URL = "https://api.example.com"; can make them stand out.

Mastering these fundamentals is what separates hobbyists from professionals. If you're serious about building a career in this, a structured learning path is key. To learn professional software development courses such as Python Programming, Full Stack Development, and MERN Stack, visit and enroll today at codercrafter.in. We break down these concepts with hands-on projects and expert mentorship.

FAQ Section

Q1: Why not just use var for everything?
var's function-scoping and ability to be re-declared can create subtle, hard-to-debug errors, especially in larger applications. let and const provide block-scoping, which is more intuitive and safer.

Q2: Can I use let and const in all browsers now?
Yes! It's 2024, and all modern browsers have fully supported let and const for years. For very old browsers like Internet Explorer 11, you might need a tool like Babel to transpile your code, but that's handled automatically by most build tools today.

Q3: What happens if I don't use any keyword (var, let, const)?
You'll create an implicit global variable. This is considered a bad practice and is forbidden in JavaScript's strict mode because it can pollute the global scope and lead to conflicts.

Q4: Is const faster than let?
In modern JavaScript engines, the performance difference is negligible and shouldn't be a factor in your decision. Choose based on the reassignment needs, not micro-optimizations.

Q5: What's the difference between undefined and null?
undefined means a variable has been declared but hasn't been assigned a value. null is an assignment value that represents the intentional absence of any object value. You can think of undefined as "this hasn't been set" and null as "this has been explicitly set to empty."

Conclusion: Wrapping It Up

So, there you have it. Variables aren't just simple storage; they're the foundation of how you manage data and state in your JavaScript applications.

  • Use const for 90% of your variables. It's your default.

  • Use let for the 10% of variables that actually need to be reassigned.

  • Leave var in the history books where it belongs.

Getting comfortable with these concepts is your first major step towards writing clean, modern, and bug-free JavaScript. It's the kind of solid foundation we build upon in all our courses at CoderCrafter. If you're ready to move from basics to building real-world applications, we're here to help you every step of the way.

Related Articles

Call UsWhatsApp