JavaScript Reserved Words
In JavaScript you cannot use these reserved words as variables, labels, or
function names:
| abstract |
arguments |
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 |
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 ECMAScript 5 and 6.
You can read more about the different JavaScript versions in the chapter
JS Versions.
Removed Reserved Words
The following reserved words have been removed from the ECMAScript 5/6 standard:
| abstract |
boolean |
byte |
char |
| double |
final |
float |
goto |
| int |
long |
native |
short |
| synchronized |
throws |
transient |
volatile |
Do not use these words as variables. ECMAScript 5/6 does not have full support
in all browsers.
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 |