Understanding let vs var vs constant in Javascript

All Javascript applications need to work with information in order to store information we make use of variables that are declared using var, let, const keywords.

The major difference between the variable declared as var and the variables declared as let and const are var creates a function scoped variable whereas let and const create blocked scoped variables.

What is function scoped variable ?

A function scoped variable is available anywhere declare inside the function

Note: if a var variable is not inside a function then it is globally scoped

What is block scoped variable ?

A block-scoped variable is only available inside the block it is declared in i.e if, while block

if(true) {
   var  var_variable = "This is a variable declared with var keyword"
 //Output: "This is a variable declared with var keyword"
if(true) {
   let  let_variable = "This is a variable declared with let keyword"

 //Output: Uncaught ReferenceError: let_variable is not defined

Another difference is the variable declare with var keyword can be completely redefined but let variable cannot be redefined

var  var_variable = "This is a variable declared with var keyword"

var  var_variable = "var variable is redefined"


 //Output: "var variable is redefined"

 let  let_variable = "This is a variable declared with let keyword";

 let  let_variable = "let variable is redefined" 


 //Output: Uncaught SyntaxError: Identifier 'let_variable' has already been declared

A variable declared with var can be used before it declared but in case of let or const it cannot be used.

Note: if a variable is declared using const keyword it cannot be reassigned

The properties of objects declared with const keyword can be reassigned

const userDetails = { id:121 };

userDetails.id = 125


In the above example, the object userDetails is declared using the const keyword and its property id is reassigned.

Looking at all the above differences it usually recommended to use the let and const keyword over the var keyword.

That's All folks, Thank you.

No Comments Yet