JavaScript Reserved Keywords


In JavaScript, some identifiers are reserved keywords and cannot be used as variable names or function names.


JavaScript Standard

All modern browsers fully support ECMAScript 3 (ES3, the third edition of JavaScript, since 1999).

ECMAScript 4 (ES4) was not approved.

ECMAScript 5 (ES5, released in 2009).

ECMAScript 6 (ES6, released in 2015), is the latest official version of JavaScript.

Over time, we have started to see that all modern browsers fully support ES6.


JavaScript Reserved Keywords

JavaScript reserved keywords cannot be used as variable names, labels, or function names. Some reserved keywords are reserved for future extensions of JavaScript.

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

Keywords marked with * are newly added in ECMAScript 5.


JavaScript Objects, Properties, and Methods

You should also avoid using the names of JavaScript built-in objects, properties, and methods as JavaScript variable or function names:

Array Date eval function hasOwnProperty
Infinity isFinite isNaN isPrototypeOf length
Math NaN name Number Object
prototype String toString undefined valueOf


Java Reserved Keywords

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


Window Reserved Keywords

JavaScript can be used outside of HTML. It can be used as a programming language in many other applications.

In HTML, you must (and for portability, you should also) avoid using the names of HTML and Window objects and properties as JavaScript variable and function names:

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 also avoid using the names of HTML event handlers as JavaScript variable and function names.

Examples:

onblur onclick onerror onfocus
onkeydown onkeypress onkeyup onmouseover
onload onmouseup onmousedown onsubmit

Other Extensions