JavaScript does not has the concept of block scope util let and const appeard(Only catch of try catch has–ES3).
For example:
<script>
var a=2;
{
var a=1;
}
console.log(a); //1
</script>
<script>
for(var i=0;i<5;i++){
//do something
}
console.log(i); //6,in fact we do not need the variable i.
</script>
To solve the problem,we use let and const.
<script>
var a=2;
{
let a=1;
}
console.log(a); //2
</script>
<script>
for(let i=0;i<5;i++){
//do something
}
console.log(i); //ReferenceError: i is not defined
</script>
<script>
{
const a=1;
}
console.log(a); //ReferenceError: a is not defined
</script>
Attention!Once the variable is defined by const,it can not be changed.
<script>
{
const a=1;
a=2; //TypeError: Assignment to constant variable.
}
</script>