Reserved words are keywords that the interpreter uses to determine the instructions your script is going to execute.
Generally, reserved words will be one of the following:
A keyword
A reserved word
A null literal
A Boolean literal
Here is a complete list of reserved words as defined by the ECMA 262 standard. It also includes words that are dangerous because they are properties or method names.
Name | Notes |
---|---|
abstract | Java keyword reserved |
alert | Identifier name |
arguments | Identifier name |
Array | Object type |
blur | Identifier name |
boolean | Java keyword reserved |
Boolean | Object type |
break | Keyword |
byte | Java keyword reserved |
callee | Identifier name |
caller | Identifier name |
captureEvents | Identifier name |
case | Keyword |
catch | Reserved word |
char | Java keyword reserved |
class | Reserved word |
clearInterval | Identifier name |
clearTimeout | Identifier name |
close | Identifier name |
closed | Identifier name |
confirm | Identifier name |
const | Reserved word |
constructor | Identifier name |
continue | Keyword |
Date | Object type |
debugger | Reserved word |
default | Keyword |
defaultStatus | Identifier name |
delete | Keyword |
do | Keyword |
document | Identifier name |
double | Java keyword reserved |
else | Keyword |
enum | Reserved word |
escape | Identifier name |
eval | Identifier name |
export | Keyword |
extends | Reserved word |
false | Boolean literal |
final | Java keyword reserved |
finally | Keyword |
find | Identifier name |
float | Java keyword reserved |
focus | Identifier name |
for | Keyword |
frames | Identifier name |
function | Keyword |
Function | Object type |
goto | Java keyword reserved |
history | Identifier name |
home | Identifier name |
if | Keyword |
implements | Java keyword reserved |
import | Keyword |
in | Keyword |
Infinity | Global special variable |
innerHeight | Identifier name |
innerWidth | Identifier name |
instanceof | Keyword |
int | Java keyword reserved |
interface | Java keyword reserved |
isFinite | Identifier name |
isNaN | Identifier name |
java | Identifier name |
length | Identifier name |
location | Identifier name |
locationbar | Identifier name |
long | Java keyword reserved |
Math | Object type |
menubar | Identifier name |
moveBy | Identifier name |
moveTo | Identifier name |
name | Identifier name |
NaN | Global special variable |
native | Java keyword reserved |
netscape | Identifier name |
new | Keyword |
null | Null literal |
Number | Object type |
Object | Object type |
open | Identifier name |
opener | Identifier name |
outerHeight | Identifier name |
outerWidth | Identifier name |
package | Java keyword reserved |
Packages | Identifier name |
pageXOffset | Identifier name |
pageYOffset | Identifier name |
parent | Identifier name |
parseFloat | Identifier name |
parseInt | Identifier name |
personalbar | Identifier name |
Identifier name | |
private | Java keyword reserved |
prompt | Identifier name |
protected | Java keyword reserved |
prototype | Identifier name |
public | Java keyword reserved |
RegExp | Identifier name |
releaseEvents | Identifier name |
resizeBy | Identifier name |
resizeTo | Identifier name |
return | Keyword |
routeEvent | Identifier name |
scroll | Identifier name |
scrollbars | Identifier name |
scrollBy | Identifier name |
scrollTo | Identifier name |
self | Identifier name |
setInterval | Identifier name |
setTimeout | Identifier name |
short | Java keyword reserved |
static | Java keyword reserved |
status | Identifier name |
statusbar | Identifier name |
stop | Identifier name |
String | Object type |
super | Reserved word |
switch | Keyword |
synchronized | Java keyword reserved |
this | Keyword |
throw | Keyword |
throws | Java keyword reserved |
toolbar | Identifier name |
top | Identifier name |
toString | Identifier name |
transient | Java keyword reserved |
true | Boolean literal |
try | Keyword |
typeof | Keyword |
unescape | Identifier name |
unwatch | Identifier name |
valueOf | Identifier name |
var | Keyword |
void | Keyword |
volatile | Reserved word |
watch | Identifier name |
while | Keyword |
window | Identifier name |
with | Keyword |
Looking at the some of the particular keywords being reserved, it suggests that future revisions of ECMAScript will become more object oriented. Or at least even if the underlying implementation is not truly object oriented, then the visible interface to the interpreter from a script will behave very much as if it is.
The third edition of the ECMA standard does not add any new keywords but removes those that have been defined as part of the upgrade to the standard. There are still several that are classed as reserved words that have already been implemented in some browser versions. Simply avoiding parse errors does not qualify them as features to be documented as being available in the browser.
On the Netscape developer web site, there is talk of developing a version 2.0 of the JavaScript language, to change JavaScript into a truly class-based object oriented language. At that time, many of the currently reserved words will likely become functional parts of the language.
You must not use reserved words as identifier names.
The table lists words you should avoid in a client-side context. You could argue that because alert is not a reserved word on the server-side that it would be safe to use it there. I would recommend against that because it is possible you might develop a library of JavaScript functions for general purpose use. It wouldn't be hard to imagine how an identifier that was server-side safe could eventually end up being executed client-side.
The list in the table is not exhaustive and you should always think carefully about the identifier names you choose for properties, methods, functions, and variables.
ECMA 262 edition 2 - section - 7.4.1
ECMA 262 edition 3 - section - 7.5.1
O'Reilly JavaScript Definitive Guide - page - 31
Prev | Home | Next |
Requesting privileges | Up | ResetButton object |
JavaScript Programmer's Reference, Cliff Wootton Wrox Press (www.wrox.com) Join the Wrox JavaScript forum at p2p.wrox.com Please report problems to support@wrox.com © 2001 Wrox Press. All Rights Reserved. Terms and conditions. |