Why does this statement does not throw an error?

Viewed 24

We all know that JavaScript reserved keywords cannot be used as variable names. For example, var, function, let, etc are considered special keywords in JavaScript. But consider this code:

var let = "Hi";
console.log(let); // prints out "Hi"
let var = "Hi";
console.log(var); // Syntax error

I am confused as to why the browser did not throw an error when I attempted to use it as variable name, but when I tried with var, it throws an error.

1 Answers

const and let are recent additions to JS, but for a long time before they were added const was a reserved keyword (presumably on the basis that it was thought to be a likely future addition to the language).

Since let used to be a valid variable name, this is presumably for backwards compatibility.

var let is ok but let let isn't?

Related