

Every JavaScript developer eventually asks the same question in their first few weeks: why are there three different ways to create a variable? The answer isn’t historical trivia — knowing exactly when to use var, let, or const is one of the clearest signs of someone who actually understands how JavaScript works.
The Short Answer
In modern JavaScript, use const by default, use let when a value genuinely needs to change, and avoid var entirely in new code. That single rule covers the vast majority of real-world situations — but understanding why makes it far easier to remember.
RAED ALSO:
Understanding JavaScript Functions: Declarations, Expressions, and Arrow Functions

var: The Original, and Now Mostly Retired
var was the only way to declare a variable in JavaScript’s earliest days. Its biggest problem is scope: var is function-scoped, not block-scoped, meaning a variable declared inside an if statement or loop with var can leak out and cause confusing, hard-to-trace bugs elsewhere in the code.
let: Block-Scoped and Reassignable
let was introduced specifically to fix var’s scoping problems. A variable declared with let is confined to the block it was created in — an if statement, a loop, a function — and cannot be accessed outside it. Use let whenever a variable’s value genuinely needs to change later, like a counter in a loop.
let and const both respect block scope. var does not. That single difference eliminates an entire category of bugs that plagued early JavaScript code.
const: Block-Scoped and Unreassignable
const works exactly like let in terms of scoping, but the variable cannot be reassigned after its initial value is set. This does not mean the value is fully unchangeable — an array or object declared with const can still have its contents modified, just not be replaced entirely with a new array or object.
A Practical Example
const name = "Obah"; — this value will never be reassigned, so const is correct.
let count = 0; — this value will change as a loop or counter runs, so let is correct.
Neither example needs var at all.
Why const Should Be Your Default
Defaulting to const, and only switching to let when reassignment is genuinely needed, makes code easier to read and reason about — anyone reading const immediately knows that value will not change later, reducing the mental effort needed to track it through the rest of the code.
Frequently Asked Questions
Will var stop working in browsers?
No — var remains fully supported for backward compatibility, but virtually all modern style guides and teams avoid it in new code.
Can I change the properties of a const object?
Yes — const only prevents reassigning the variable itself, not modifying the contents of an object or array it points to.
Is there a performance difference between var, let, and const?
No meaningful difference in modern JavaScript engines — the choice is about code clarity and bug prevention, not speed.
Want to go deeper into modern JavaScript fundamentals? Explore more web development guides.