DEV Community

Rahul Chaudhary
Rahul Chaudhary

Posted on

Guess the output

var a = 2;
if (true) {
var a = 5;
console.log(a) // 5
}
console.log(a) // 5

I'm new to Javascript, can anyone tell why it printed 5 in below console statement

Top comments (2)

Collapse
 
siddharthshyniben profile image
Siddharth

TL;DR If you use var this will happen, try using let


var is not block scoped, this is a limitation from the days of old JavaScript. Nowadays you should use the modern let or const.

Some resources:

Collapse
 
zippcodder profile image
Deon Rich

You overwrote the variable in the if statement.