try {
  throw new Error();
} catch (x) {
  var x = 100,
    y = 10;
  console.log(x);
  console.log(y);
}
console.log(x);
console.log(y);The above code gives the output
100
10
undefined
10
Can anyone please help me understand why the value of x is undefined outside try-catch, but y is 10.
If I change the catch variable from x to some other random name the output comes as expected. i.e:
try {
  throw new Error();
} catch (x) {
  var foo = 100,
    y = 10;
  console.log(foo);
  console.log(y);
}
console.log(foo);
console.log(y);100
10
100
10
 
    