why is class a reserved word in JavaScript?
It's reserved to future-proof ECMAScript
The following words are used as keywords in proposed extensions and are therefore reserved to allow for the possibility of future adoption of those extensions.
Don't fret though, if you're using best-practices in your JavaScripts, you're placing all accessible functions/variables/constructors in a namespace, which will allow you to use whatever name you'd like:
foo = {};
foo['class'] = function(){...code...};
var myClass = new foo['class']();
Languages evolve. It is prudent to reserve a few keywords that might come in use later. According to the ECMA standard, class
is a Future Reserved Word.
If you did not reserve them, introducing new keywords could conflict with existing code (which already might be using the word for other things). Happened with Java and assert
.
Now it's used in ECMAScript® 2015 Language Specification:
class Foo {
constructor(bar) {
this.bar = bar;
}
}
new Foo(10).bar; // 10
class
is reserved as a future keyword by the ECMAScript specification
Reserved Words - MDN
It is there so that support can be added in future without breaking existing programs. Please take a look at the following post.
You can also look at
https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words