Overwriting var keyword declaration

The tutorial says that:

One of the biggest problems with declaring variables with the var keyword is that you can overwrite variable declarations without an error. In a small application, you might not run into this type of problem, but when your code becomes larger, you might accidentally overwrite a variable that you did not intend to overwrite. Because this behavior does not throw an error, searching and fixing bugs becomes more difficult.

I want to know how this mistake of overwriting declarations with the var keyword a programmer can go into if the application is big (as the tutorial suggests) can lead to unintended results. I want an example on the bugs that can happen in such cases.
Thanks in advance

Challenge: Explore Differences Between the var and let Keywords

Link to the challenge:

The tutorial gives an example:

var camper = 'James';
var camper = 'David';
console.log(camper);

I don’t think takes much imagination to imagine:

var camper = 'James';
// ...
// 287 lines of other code
// ...
var camper = 'David';
console.log(camper);

The coder has forgotten that there already is a variable with that name and redeclared it and now s/he thinks that there are two variables but there is really one. This could cause an error - s/he changes the “second” one and doesn’t realize that the “first” one is also being changed.

There are different ways to prevent this - write small functions, pay attention to scope, etc. But another way is to use let and const instead of var.

Me, I don’t think I’ve every encountered a problem with var. But that is probably also because I never use var. And I write small functions and manage my scope.

Does that help?

1 Like

It does, thanks. I had a problem understanding what is the big deal if we used the same variable, without accounting for the programmer’s intention to actually declare two separate entities.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.