CLOSE

   ES6  let  var  JavaScript  
   Technology    Programming

Difference between var and let in JavaScript

           
 FEBRUARY 21, 2019   by iamabhishek

In JavaScript variables were declared using the var keyword up until ECMAScript 6 (ES6). Before ES6, we used to declare variable using the var keyword where variables had global scope by default or in other words we can say the variables declared using the var keyword are available throughout the program and not just within a block.

While on the other hand, if we want a variable to exist only within a block we can use the let keyword.

Now let's see a few differences between variables declared using the keywords var and let.




Global window object

When we declare a variable using the var keyword, it is added to the global window object and can be accessed using the same whereas when we declare a variable using the let keyword it is not added to the global window object. Let's take an example and see,

var one = "Hello";

let two = "World";

console.log(window.one);    \\ Hello is printed in console

console.log(window.two);    \\ undefined

As only global variables, which can be accessed throughout the program gets added to the global window object and as variables declared using the let keyword have block scope they are not added to the global window object.




Scope of Variable

As mentioned already, variables declared using the let keyword have a block scope i.e. they are available only within the code block where it is declared or initialised whereas variables declared using the var keyword have a program scope i.e. it is available throughout the program.

Let's take an example,

for(let i=0; i<5; i++)

{

     console.log(i);    // 0 1 2 3 4

}

console.log(i);    // undefined as 'i' is not available outside the foor loop block

In the code snippet above you can see how scope of variable declared using let keyword works.

for(var i=0; i<5; i++)

{

    console.log(i);    // 0 1 2 3 4

}

console.log(i);    // 5 is printed in console

You will see many trick coding interview questions based on scope of variables now during JavaScript interviews. When used inside a function, both the variables types will be avialble within the scope of the function.




Redeclaration of Variables

When we declare a variable, we also provide value for it, which can obviously be changed. But not anymore, when we declare a variable using the let keyword we cannot change it's value once defined.

The error can be seen when we are working in 'strict mode'.

First, let's take an example with var keyword,

'use strict'

var one = "I am number 1";    // declared

var one = "I am the new number 1";    // redeclared easily

But this is not the case with let keyword,

'use strict'

let two = "I am number 2";    // declared

let two = "I am new number 2";    // SyntaxError: two is already declared



Conclusion

So these are some differences between let and var keyword, used for variable declaration in JavaScript. The overall conclusion is, to justify scopes of variables you must use let instead of var for defining variables. And avoid using var keyword unless you need a global variable.


SHARE YOUR THOUGHTS WITH US!




       

Made with by Abhishek Ahlawat

© 2019 Studytonight.   All rights reserved.

DMCA.com Protection Status