View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
In JavaScript you cannot use these reserved words as variables names, labels names or function names.
Reserved Words:
abstract | arguments | boolean | break | byte |
case | catch | char | const | continue |
debugger | default | delete | do | double |
else | eval | false | final | finally |
float | for | function | goto | if |
implements | in | instanceof | int | interface |
long | native | new | null | package |
private | protected | public | return | short |
static | switch | synchronized | this | throw |
throws | transient | true | try | typeof |
var | void | volatile | while | with |
yield |
Reserved Words added in ECMAScript 5 and 6.
awaits | class | enum | export |
extends | import | let | super |
Removed Reserved Words
Following reserved words has been removed from ECMAScript 5 and 6.
abstract | boolean | byte | char |
double | final | float | goto |
int | long | native | short |
synchronized | throws | transient | volatile |
In JavaScript, some identifiers are reserved words and cannot be used as variables or function names.
JavaScript Standards
ECMAScript 3 [ES3] was released in December 1999.
ECMAScript 4 [ES4] was abandoned.
ECMAScript 5 [ES5] was released in December 2009.
ECMAScript 6 [ES6] was released in June 2015, and is the latest official version of JavaScript.
Time passes, and we are now beginning to see complete support for ES5/ES6 in all modern browsers.
JavaScript Reserved Words
In JavaScript you cannot use these reserved words as variables, labels, or function names:
abstract | arguments | boolean | break | byte |
case | catch | char | class* | const |
continue | debugger | default | delete | do |
double | else | enum* | eval | export* |
extends* | false | final | finally | float |
for | function | goto | if | implements |
import* | in | instanceof | int | interface |
let | long | native | new | null |
package | private | protected | public | return |
short | static | super* | switch | synchronized |
this | throw | throws | transient | true |
try | typeof | var | void | volatile |
while | with | yield |
Words marked with* are new in ECMAScript5
JavaScript Objects, Properties, and Methods
You should also avoid using the name of JavaScript built-in objects, properties, and methods:
Array | Date | eval | function | hasOwnProperty |
Infinity | isFinite | isNaN | isPrototypeOf | length |
Math | NaN | name | Number | Object |
prototype | String | toString | undefined | valueOf |
Java Reserved Words
JavaScript is often used together with Java. You should avoid using some Java objects and properties as JavaScript identifiers:
getClass | java | JavaArray | javaClass | JavaObject | JavaPackage |
Windows Reserved Words
JavaScript can be used outside HTML. It can be used as the programming language in many other applications.
In HTML you must [for portability you should] avoid using the name of HTML and Windows objects and properties:
alert | all | anchor | anchors | area |
assign | blur | button | checkbox | clearInterval |
clearTimeout | clientInformation | close | closed | confirm |
constructor | crypto | decodeURI | decodeURIComponent | defaultStatus |
document | element | elements | embed | embeds |
encodeURI | encodeURIComponent | escape | event | fileUpload |
focus | form | forms | frame | innerHeight |
innerWidth | layer | layers | link | location |
mimeTypes | navigate | navigator | frames | frameRate |
hidden | history | image | images | offscreenBuffering |
open | opener | option | outerHeight | outerWidth |
packages | pageXOffset | pageYOffset | parent | parseFloat |
parseInt | password | pkcs11 | plugin | prompt |
propertyIsEnum | radio | reset | screenX | screenY |
scroll | secure | select | self | setInterval |
setTimeout | status | submit | taint | text |
textarea | top | unescape | untaint | window |
HTML Event Handlers
In addition you should avoid using the name of all HTML event handlers.
Examples:
onblur | title | onerror | onfocus |
onkeydown | onkeypress | onkeyup | onmouseover |
onload | onmouseup | onmousedown | onsubmit |