[Solved] What is the main difference between var and let in JavaScript?

  

4
Topic starter

Please let me know what is the difference between var and let in JavaScript?

How should I know whether to use let or var when coding?

I know that let is used with ECMAScript6 - it is not showing (or trowing an error) in the older versions of JavaScript).

When shall I use var and when let in my code?

2 Answers
3

The main difference between var and let is pretty simple:

let has a "block scope"

and

var has a "function scope"

Here are some examples:

Example 1 - using let:

for (let x=1; x<=5; x++)
  console.log(x); // 1 … 5
console.log(x); // Ref. error
 
function test() {
  console.log(x); // Ref. error
  let x = 5;
}
test();

Example 1 - using var (the same code but with var instead of let):

for (var x=1; x<=5; x++)
  console.log(x); // 1 … 5
console.log(x); // 6
 
function test() {
  console.log(x); // undefined
  var x = 5;
}
test();

Example 2 - using let:

let x = 100; // block scope
console.log(x); // 100
for (let x=1; x<=5; x++) {
  console.log(x); // 1 … 5
} // end of block scope
console.log(x); // 100
 
console.log(x); // Ref. error
let x;

Example 2 - using var(the same code but with var instead of let):

var x = 100; // function scope
console.log(x); // 100
for (var x=1; x<=5; x++) {
  console.log(x); // 1 … 5
} // same x inside the loop
console.log(x); // 6
 
console.log(x); // undefined
var x;
2

Here is short video explaining the difference between var, let and const in JavaScript:

  • If you need a constant, use const.
  • If you want to limit the scope of a variable to just one code block, use let.
  • If you need a general global or local variable, use var.

And if you're ever in doubt experiment and see which one of the 3 will give you the result you want. Cheers

Share: