JavaScript Reserved Words
In JavaScript you cannot use these reserved words as variables, labels, or
function names:
| abstract |
arguments |
async * |
await * |
| 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 |
| function |
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 |
| using * |
var |
void |
volatile |
| while |
with |
yield |
Note
Words marked with* have been added to JavaScript from after 2015.
You can read more the newest JavaScript versions in JS News 2025-2015.
Removed Reserved Words
The following reserved words was removed from the ECMAScript 5/6 standard:
| abstract |
boolean |
byte |
char |
| double |
final |
float |
goto |
| int |
long |
native |
short |
| synchronized |
throws |
transient |
volatile |
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 |
|
|
Other Reserved Words
JavaScript can be used as the programming
language in many applications.
You should also avoid using the name of HTML
and Window 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 |
onclick |
onerror |
onfocus |
| onkeydown |
onkeypress |
onkeyup |
onmouseover |
| onload |
onmouseup |
onmousedown |
onsubmit |